From 1ac158e7c279ce0dbe40d2283037f9673523a0b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Garillot?= <4142+huitseeker@users.noreply.github.com> Date: Sat, 23 Dec 2023 15:56:21 -0500 Subject: [PATCH] ci: use reuseable workflows (#255) * ci: use reuseable workflows * ci: set up env variables for rust workflows * fix: revert use of lint job --- .github/workflows/licenses-audits.yml | 20 ----------- .github/workflows/rust.yml | 50 ++++++++++++--------------- 2 files changed, 23 insertions(+), 47 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..97278b57 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 @@ -82,16 +64,22 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Install rustup - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - override: true + - 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: + 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: name: Rust tests on CUDA @@ -101,6 +89,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 @@ -131,6 +123,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