Revive CI #114
Workflow file for this run
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: CI | |
permissions: | |
contents: read | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
env: | |
CARGO_NET_RETRY: 3 | |
jobs: | |
clippy: | |
name: Clippy | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
rust: | |
- stable | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
toolchain: ${{ matrix.rust }} | |
components: clippy | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
target | |
key: $clippy-cache-${{ steps.toolchain.outputs.rustc_hash }}-${{ hashFiles('**/Cargo.lock') }} | |
- name: "Clippy ${{ matrix.rust }}" | |
run: cargo clippy --features=rt-tokio-crypto-rust --all-targets --all -- -D clippy::dbg_macro -D warnings -F unused_must_use | |
fmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
toolchain: stable | |
components: rustfmt | |
- name: "Check formatting" | |
run: cargo fmt --all -- --check | |
test: | |
name: Tests | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
rust: | |
- stable | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
toolchain: ${{ matrix.rust }} | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
target | |
key: $test-cache-${{ steps.toolchain.outputs.rustc_hash }}-${{ hashFiles('**/Cargo.lock') }} | |
- name: Install gnome-keyring | |
run: sudo apt-get install -y gnome-keyring | |
- name: Start gnome-keyring | |
# run gnome-keyring with 'foobar' as password for the login keyring | |
# this will create a new login keyring and unlock it | |
# the login password doesn't matter, but the keyring must be unlocked for the tests to work | |
run: gnome-keyring-daemon --components=secrets --daemonize --unlock <<< 'foobar' | |
- name: Run tests with RustCrypto | |
# run tests single-threaded to avoid race conditions | |
run: cargo test --features=rt-tokio-crypto-rust -- --test-threads=1 | |
- name: Run tests with OpenSSL crypto | |
# run tests single-threaded to avoid race conditions | |
run: cargo test --features=rt-tokio-crypto-openssl -- --test-threads=1 | |
- name: Run example | |
run: cargo run --features=rt-tokio-crypto-rust --example example | |
# MSRV, influenced by zbus. | |
check_msrv: | |
name: Check MSRV | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
toolchain: "1.64.0" | |
components: clippy | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
target | |
key: $clippy-cache-${{ steps.toolchain.outputs.rustc_hash }}-${{ hashFiles('**/Cargo.lock') }} | |
- name: Generate lockfile | |
# XXX: Downgrade various dependencies to make them or their sub-dependencies MSRV compatible. | |
run: | | |
cargo generate-lockfile | |
cargo update -p proc-macro-crate --precise "1.3.0" | |
cargo update -p regex --precise "1.9.6" | |
- name: Clippy MSRV | |
run: cargo clippy --features=rt-tokio-crypto-rust --all-targets --all -- -D clippy::dbg_macro -D warnings -F unused_must_use |