Speed up CI #106
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Rust CI | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
jobs: | |
build: | |
name: test ${{ matrix.rust }} | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
rust: ["stable", "beta", "nightly"] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- name: Set up Rust | |
run: | | |
rustup update ${{ matrix.rust }} | |
rustup default ${{ matrix.rust }} | |
rustup component add rustfmt | |
rustup component add clippy | |
- uses: Swatinem/rust-cache@v2 | |
- name: Run PostgreSQL 12 | |
run: | | |
docker run --env POSTGRES_USER=postgres \ | |
--env POSTGRES_DB=pg-extras-rs-test \ | |
--env POSTGRES_PASSWORD=secret \ | |
-d -p 5432:5432 postgres:12.20-alpine \ | |
postgres -c shared_preload_libraries=pg_stat_statements | |
- name: Run PostgreSQL 13 | |
run: | | |
docker run --env POSTGRES_USER=postgres \ | |
--env POSTGRES_DB=pg-extras-rs-test \ | |
--env POSTGRES_PASSWORD=secret \ | |
-d -p 5433:5432 postgres:13.16-alpine \ | |
postgres -c shared_preload_libraries=pg_stat_statements | |
- name: Run PostgreSQL 14 | |
run: | | |
docker run --env POSTGRES_USER=postgres \ | |
--env POSTGRES_DB=pg-extras-rs-test \ | |
--env POSTGRES_PASSWORD=secret \ | |
-d -p 5434:5432 postgres:14.13-alpine \ | |
postgres -c shared_preload_libraries=pg_stat_statements | |
- name: Run PostgreSQL 15 | |
run: | | |
docker run --env POSTGRES_USER=postgres \ | |
--env POSTGRES_DB=pg-extras-rs-test \ | |
--env POSTGRES_PASSWORD=secret \ | |
-d -p 5435:5432 postgres:15.8-alpine \ | |
postgres -c shared_preload_libraries=pg_stat_statements | |
sleep 15 | |
- name: Run PostgreSQL 16 | |
run: | | |
docker run --env POSTGRES_USER=postgres \ | |
--env POSTGRES_DB=pg-extras-rs-test \ | |
--env POSTGRES_PASSWORD=secret \ | |
-d -p 5436:5432 postgres:16.4-alpine \ | |
postgres -c shared_preload_libraries=pg_stat_statements | |
sleep 15 | |
- name: Run PostgreSQL 17 | |
run: | | |
docker run --env POSTGRES_USER=postgres \ | |
--env POSTGRES_DB=pg-extras-rs-test \ | |
--env POSTGRES_PASSWORD=secret \ | |
-d -p 5437:5432 postgres:17.0-alpine \ | |
postgres -c shared_preload_libraries=pg_stat_statements | |
sleep 15 | |
- name: Check | |
run: cargo check | |
- name: Fmt | |
run: cargo fmt --all --check | |
- name: Lint | |
run: cargo clippy --all --all-features -- -D warnings | |
- name: Run tests for PG 12 | |
env: | |
PG_VERSION: 12 | |
run: cargo test | |
- name: Run tests for PG 13 | |
env: | |
PG_VERSION: 13 | |
run: cargo test | |
- name: Run tests for PG 14 | |
env: | |
PG_VERSION: 14 | |
run: cargo test | |
- name: Run tests for PG 15 | |
env: | |
PG_VERSION: 15 | |
run: cargo test | |
- name: Run tests for PG 16 | |
env: | |
PG_VERSION: 16 | |
run: cargo test | |
- name: Run tests for PG 17 | |
env: | |
PG_VERSION: 17 | |
run: cargo test |