diff --git a/.github/workflows/ci-lint.yml b/.github/workflows/ci-lint.yml new file mode 100644 index 000000000..584e705eb --- /dev/null +++ b/.github/workflows/ci-lint.yml @@ -0,0 +1,64 @@ +name: Linter + +on: + pull_request: + branches: [ main ] + +env: + CARGO_INCREMENTAL: 0 + RUSTFLAGS: "-D warnings -W rust-2021-compatibility" + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Check out + uses: actions/checkout@v3 + + - name: Install dependencies + run: sudo apt-get update && sudo apt-get install -y protobuf-compiler + + - name: Install Rust specific version + uses: actions-rs/toolchain@v1 + with: + toolchain: 1.75 + profile: minimal + components: clippy, rustfmt + override: true + + - name: Restore cargo cache + id: cache-cargo + uses: actions/cache/restore@v4 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + restore-keys: ${{ runner.os }}-cargo- + + - name: Append to Cargo.toml + run: | + echo "[profile.dev]" >> Cargo.toml + echo "debug = 0" >> Cargo.toml + + - name: Check formatting + run: cargo fmt -- --check + + - name: Lint with Clippy + run: cargo clippy --all -- -D warnings --allow=deprecated + + - name: Save cargo cache + id: cache-cargo-save + uses: actions/cache/save@v4 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ steps.cache-cargo.outputs.cache-primary-key }} diff --git a/.github/workflows/rust.yml b/.github/workflows/ci-tests.yml similarity index 90% rename from .github/workflows/rust.yml rename to .github/workflows/ci-tests.yml index 9b430f14b..b154eae85 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/ci-tests.yml @@ -1,4 +1,4 @@ -name: Rust CI +name: Tests on: pull_request: @@ -45,12 +45,6 @@ jobs: echo "[profile.dev]" >> Cargo.toml echo "debug = 0" >> Cargo.toml - - name: Check formatting - run: cargo fmt -- --check - - - name: Lint with Clippy - run: cargo clippy --all -- -D warnings --allow=deprecated - - name: Compile tests run: cargo test --no-run --locked --features integration_tests