From 3a0fe4289ab3f15cd77facde13d8363715cf6990 Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Fri, 13 Mar 2026 14:27:30 -0400 Subject: [PATCH] Improve github actions - Remove deprecated actions-rs/toolchain - Remove deprecated actions-rs/cargo - Add concurrency cancel keys - pin `actions/checkout` - Standardize 'run' line format - Only run on main/PR pushes - Remove unnecessary `permissions: {contents: read}` (this is default for push/pull request events) - switch rust-toolchain.toml to pin to explicit rust version instead of stable. --- .github/workflows/build.yml | 26 +++++++++++++------------- .github/workflows/license-check.yml | 15 ++++++++++----- .github/workflows/lint.yml | 24 +++++++++++++----------- .github/workflows/test.yml | 22 ++++++++++++++++------ rust-toolchain.toml | 6 +++++- 5 files changed, 57 insertions(+), 36 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 01253ec..85555d2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,23 +1,23 @@ name: Build -permissions: - contents: read on: push: + branches: + - main + pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }} + cancel-in-progress: true jobs: build: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af # v1 - with: - toolchain: stable - - uses: actions-rs/cargo@844f36862e911db73fe0815f00a4a2602c279505 # v1 - with: - command: build - args: --release - - uses: actions-rs/cargo@844f36862e911db73fe0815f00a4a2602c279505 # v1 - with: - command: build - args: --release --all-features + - run: | + rustup toolchain install + - run: | + cargo build --release + - run: | + cargo build --release --all-features diff --git a/.github/workflows/license-check.yml b/.github/workflows/license-check.yml index 4ab8898..b63b0c9 100644 --- a/.github/workflows/license-check.yml +++ b/.github/workflows/license-check.yml @@ -1,14 +1,19 @@ name: license-check -permissions: - contents: read on: push: + branches: + - main + pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }} + cancel-in-progress: true jobs: license: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@master - - name: Check License Header - uses: apache/skywalking-eyes/header@7a3b6cc34c5980cede4407ffa06fe553a999245d + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: Check License Header + uses: apache/skywalking-eyes/header@7a3b6cc34c5980cede4407ffa06fe553a999245d diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 860d930..ad37b79 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,23 +1,25 @@ name: lint -permissions: - contents: read - on: push: + branches: + - main + pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }} + cancel-in-progress: true jobs: format: runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: cargo fmt --all -- --check - run: cargo fmt --all -- --check + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - run: | + cargo fmt --all -- --check clippy: runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: cargo clippy -- -Dwarnings - run: cargo clippy -- -Dwarnings + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - run: | + cargo clippy -- -Dwarnings diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 10902de..62c6b88 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,9 +1,14 @@ name: Test -permissions: - contents: read on: push: + branches: + - main + pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }} + cancel-in-progress: true jobs: test: @@ -24,8 +29,13 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af # v1 - with: - toolchain: stable - run: | - TEST_DATABASE=postgres://test:test@localhost RUST_LOG=v=trace cargo test --all-features + rustup toolchain install + - run: | + cargo build + - run: | + cargo test --all-features + env: + RUST_BACKTRACE: "1" + TEST_DATABASE: postgres://test:test@localhost + RUST_LOG: v=trace,turnstile=trace diff --git a/rust-toolchain.toml b/rust-toolchain.toml index d0ead5e..fe9db1d 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,3 +1,7 @@ +# The intent is to keep this updated as new stable versions are relased. +# Probably easiest if it matches dropshot +# https://github.com/oxidecomputer/dropshot/blob/main/rust-toolchain.toml + [toolchain] -channel = "stable" +channel = "1.93.1" components = ["clippy", "rustfmt"]