From 50cff8b57ae15448fb86e112a6d7a2c3fe2533dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Garillot?= Date: Thu, 21 Dec 2023 17:57:41 -0500 Subject: [PATCH 1/3] ci: use reuseable workflows --- .github/workflows/licenses-audits.yml | 20 ------------- .github/workflows/rust.yml | 41 ++++++++------------------- 2 files changed, 12 insertions(+), 49 deletions(-) delete mode 100644 .github/workflows/licenses-audits.yml diff --git a/.github/workflows/licenses-audits.yml b/.github/workflows/licenses-audits.yml deleted file mode 100644 index 293f63cc..00000000 --- a/.github/workflows/licenses-audits.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: cargo-deny - -on: - merge_group: - push: - branches: - - master - pull_request: - types: [opened, synchronize, reopened, ready_for_review] - -env: - CARGO_TERM_COLOR: always - -jobs: - cargo-deny: - name: cargo-deny (advisories, licenses, bans, ...) - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: EmbarkStudios/cargo-deny-action@v1 diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index a118ba8d..8d20e84f 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -61,36 +61,19 @@ jobs: - name: Abomonation feature run: cargo run --features "abomonation" --example poseidon_constants_serde - clippy: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - with: - components: rustfmt, clippy - - uses: Swatinem/rust-cache@v2 - # See '.cargo/config' for list of enabled/disabled clippy lints - - name: rustfmt - uses: actions-rs/cargo@v1 - with: - command: fmt - args: --all --check - - name: cargo clippy - run: cargo xclippy -D warnings + # Wasm build, rustfmt, clippy, doctests, and MSRV + code-quality: + uses: lurk-lab/ci-workflows/.github/workflows/lints.yml@main - msrv: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Install rustup - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - override: true - - name: Install cargo-msrv - run: cargo install cargo-msrv - - name: Check Rust MSRV - run: cargo msrv verify + # Check documentation links aren't broken + link-checker: + uses: lurk-lab/ci-workflows/.github/workflows/links-check.yml@main + with: + fail-fast: true + + # Lint dependencies for licensing and auditing issues as per https://github.com/lurk-lab/neptune/blob/main/deny.toml + licenses-audits: + uses: lurk-lab/ci-workflows/.github/workflows/licenses-audits.yml@main # Runs the test suite on a self-hosted GPU machine with CUDA enabled test-cuda: From ba6b12e8afc3948ba5a95b5298a79d2f7e0a59d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Garillot?= Date: Thu, 21 Dec 2023 18:17:35 -0500 Subject: [PATCH 2/3] ci: set up env variables for rust workflows --- .github/workflows/rust.yml | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 8d20e84f..b0c4fa75 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -6,28 +6,6 @@ on: types: [opened, synchronize, reopened, ready_for_review] branches: [main, dev] -env: - CARGO_TERM_COLOR: always - # Disable incremental compilation. - # - # Incremental compilation is useful as part of an edit-build-test-edit cycle, - # as it lets the compiler avoid recompiling code that hasn't changed. However, - # on CI, we're not making small edits; we're almost always building the entire - # project from scratch. Thus, incremental compilation on CI actually - # introduces *additional* overhead to support making future builds - # faster...but no future builds will ever occur in any given CI environment. - # - # See https://matklad.github.io/2021/09/04/fast-rust-builds.html#ci-workflow - # for details. - CARGO_INCREMENTAL: 0 - # Allow more retries for network requests in cargo (downloading crates) and - # rustup (installing toolchains). This should help to reduce flaky CI failures - # from transient network timeouts or other issues. - CARGO_NET_RETRY: 10 - RUSTUP_MAX_RETRIES: 10 - # Don't emit giant backtraces in the CI logs. - RUST_BACKTRACE: short - concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true @@ -43,6 +21,10 @@ jobs: env: RUSTFLAGS: -D warnings steps: + - uses: actions/checkout@v4 + with: + repository: lurk-lab/ci-workflows + - uses: ./.github/actions/ci-env - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - uses: taiki-e/install-action@nextest @@ -84,6 +66,10 @@ jobs: NVIDIA_DRIVER_CAPABILITITES: compute,utility EC_GPU_FRAMEWORK: cuda steps: + - uses: actions/checkout@v4 + with: + repository: lurk-lab/ci-workflows + - uses: ./.github/actions/ci-env - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - uses: taiki-e/install-action@nextest @@ -114,6 +100,10 @@ jobs: NVIDIA_DRIVER_CAPABILITITES: compute,utility EC_GPU_FRAMEWORK: opencl steps: + - uses: actions/checkout@v4 + with: + repository: lurk-lab/ci-workflows + - uses: ./.github/actions/ci-env - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - uses: taiki-e/install-action@nextest From 09e133ed0693ca5d13dd4ca5fa42ee11b5ef74f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Garillot?= Date: Thu, 21 Dec 2023 19:31:39 -0500 Subject: [PATCH 3/3] fix: revert use of lint job --- .github/workflows/rust.yml | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index b0c4fa75..97278b57 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -43,9 +43,32 @@ jobs: - name: Abomonation feature run: cargo run --features "abomonation" --example poseidon_constants_serde - # Wasm build, rustfmt, clippy, doctests, and MSRV - code-quality: - uses: lurk-lab/ci-workflows/.github/workflows/lints.yml@main + clippy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + with: + components: rustfmt, clippy + - uses: Swatinem/rust-cache@v2 + # See '.cargo/config' for list of enabled/disabled clippy lints + - name: rustfmt + uses: actions-rs/cargo@v1 + with: + command: fmt + args: --all --check + - name: cargo clippy + run: cargo xclippy -D warnings + + msrv: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - name: Install cargo-msrv + run: cargo install cargo-msrv + - name: Check Rust MSRV + run: cargo msrv verify # Check documentation links aren't broken link-checker: