From ab668ada4787a4f46f0828510cdd393aca67dc9b Mon Sep 17 00:00:00 2001 From: Luca Palmieri <20745048+LukeMathWalker@users.noreply.github.com> Date: Fri, 30 Aug 2024 15:23:07 +0200 Subject: [PATCH] Speed up other CI jobs by avoiding the usage of a live Postgres database --- .github/workflows/general.yml | 33 ++++++------------- ...caa9da2220f8a9ad6c1debc3095deb9f84759.json | 26 +++++++++++++++ 2 files changed, 36 insertions(+), 23 deletions(-) create mode 100644 .sqlx/query-ed279fc2dda0c3ede3e81a4500fcaa9da2220f8a9ad6c1debc3095deb9f84759.json diff --git a/.github/workflows/general.yml b/.github/workflows/general.yml index 8773c96..6293c1e 100644 --- a/.github/workflows/general.yml +++ b/.github/workflows/general.yml @@ -21,6 +21,7 @@ jobs: test: name: Test runs-on: ubuntu-latest + # Service containers to run alongside the `test` container job services: postgres: # Docker Hub image @@ -43,6 +44,7 @@ jobs: # It also takes care of caching intermediate build artifacts. - name: Install the Rust toolchain uses: actions-rust-lang/setup-rust-toolchain@v1 + - name: Install sqlx-cli run: cargo install sqlx-cli @@ -53,16 +55,18 @@ jobs: # The --locked flag can be used to force Cargo to use the packaged Cargo.lock file if it is available. # This may be useful for ensuring reproducible builds, to use the exact same set of dependencies that were available when the package was published. # It may also be useful if a newer version of a dependency is published that no longer builds on your system, or has other problems + - name: Migrate database run: | - sudo apt-get install libpq-dev -y SKIP_DOCKER=true ./scripts/init_db.sh - - name: Check sqlx-data.json is up-to-date - run: | - cargo sqlx prepare --workspace --check + - name: Run tests run: cargo test + - name: Check that queries are fresh + run: cargo sqlx prepare --workspace --check -- --all-targets + + # `fmt` container job fmt: name: Rustfmt runs-on: ubuntu-latest @@ -78,31 +82,14 @@ jobs: clippy: name: Clippy runs-on: ubuntu-latest - services: - postgres: - image: postgres:14 - env: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: password - POSTGRES_DB: postgres - ports: - - 5432:5432 + env: + SQLX_OFFLINE: true steps: - uses: actions/checkout@v4 - name: Install the Rust toolchain uses: actions-rust-lang/setup-rust-toolchain@v1 with: components: clippy - - name: Install sqlx-cli - run: cargo install sqlx-cli - --version=${{ env.SQLX_VERSION }} - --features ${{ env.SQLX_FEATURES }} - --no-default-features - --locked - - name: Migrate database - run: | - sudo apt-get install libpq-dev -y - SKIP_DOCKER=true ./scripts/init_db.sh - name: Linting run: cargo clippy -- -D warnings diff --git a/.sqlx/query-ed279fc2dda0c3ede3e81a4500fcaa9da2220f8a9ad6c1debc3095deb9f84759.json b/.sqlx/query-ed279fc2dda0c3ede3e81a4500fcaa9da2220f8a9ad6c1debc3095deb9f84759.json new file mode 100644 index 0000000..5204918 --- /dev/null +++ b/.sqlx/query-ed279fc2dda0c3ede3e81a4500fcaa9da2220f8a9ad6c1debc3095deb9f84759.json @@ -0,0 +1,26 @@ +{ + "db_name": "PostgreSQL", + "query": "SELECT email, name FROM subscriptions", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "email", + "type_info": "Text" + }, + { + "ordinal": 1, + "name": "name", + "type_info": "Text" + } + ], + "parameters": { + "Left": [] + }, + "nullable": [ + false, + false + ] + }, + "hash": "ed279fc2dda0c3ede3e81a4500fcaa9da2220f8a9ad6c1debc3095deb9f84759" +}