Skip to content

Use testcontainers to run postgres database. Disable shutdown tests due to interfering tests (global var impl). #598

Use testcontainers to run postgres database. Disable shutdown tests due to interfering tests (global var impl).

Use testcontainers to run postgres database. Disable shutdown tests due to interfering tests (global var impl). #598

Workflow file for this run

# Test these locally using [act]
# `act --container-architecture linux/amd64 -v -j build_and_push`
# [act]: https://github.com/nektos/act
name: Tests & linter
on:
push:
branches:
- main
pull_request:
types: [opened, synchronize, reopened]
branches:
- main
env:
RUST_VERSION: "1.78.0-nightly"
NIGHTLY_VERSION: nightly-2024-02-05
CARGO_TERM_COLOR: always
# Skip incremental build and debug info generation in CI
CARGO_INCREMENTAL: 0
CARGO_PROFILE_DEV_DEBUG: 0
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.NIGHTLY_VERSION }}
override: true
components: rustfmt, clippy
- name: Install protobuf-compiler
run: sudo apt-get install -y protobuf-compiler
- name: Cache
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ env.RUST_VERSION }}-${{ env.NIGHTLY_VERSION }}-cargo-lint-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ env.RUST_VERSION }}-${{ env.NIGHTLY_VERSION }}-cargo-lint-
- name: Check formatting
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
- uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --locked --all-targets
- name: Check docs
uses: actions-rs/cargo@v1
with:
command: doc
args: --locked --no-deps --document-private-items
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.NIGHTLY_VERSION }}
override: true
- name: Install protobuf-compiler
run: sudo apt-get install -y protobuf-compiler
- name: Cache
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ env.RUST_VERSION }}-${{ env.NIGHTLY_VERSION }}-cargo-test-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ env.RUST_VERSION }}-${{ env.NIGHTLY_VERSION }}-cargo-test-
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Install latest nextest release
uses: taiki-e/install-action@nextest
- name: Build tests
uses: actions-rs/cargo@v1
with:
command: nextest
args: run --workspace --no-run
- name: Run tests
uses: actions-rs/cargo@v1
with:
command: nextest
args: run --workspace
cargo-vet:
name: Vet Dependencies
runs-on: ubuntu-latest
env:
CARGO_VET_VERSION: 0.9.0
steps:
- uses: actions/checkout@master
- name: Install Rust
run: rustup update stable && rustup default stable
- uses: actions/cache@v3
with:
path: ${{ runner.tool_cache }}/cargo-vet
key: cargo-vet-bin-${{ env.CARGO_VET_VERSION }}
- name: Add the tool cache directory to the search path
run: echo "${{ runner.tool_cache }}/cargo-vet/bin" >> $GITHUB_PATH
- name: Ensure that the tool cache is populated with the cargo-vet binary
run: cargo install --root ${{ runner.tool_cache }}/cargo-vet --version ${{ env.CARGO_VET_VERSION }} cargo-vet
- name: Invoke cargo-vet
run: cargo vet --locked