From 4b52de20d307a8fb4049808f7399031ff0db6b71 Mon Sep 17 00:00:00 2001 From: graelo Date: Tue, 8 Nov 2022 23:05:25 +0100 Subject: [PATCH] ci(github-actions): better structure & shorter action names --- .github/workflows/essentials.yml | 38 ++++++---- .github/workflows/large-scope.yml | 112 ++++++++++++++++++++---------- 2 files changed, 98 insertions(+), 52 deletions(-) diff --git a/.github/workflows/essentials.yml b/.github/workflows/essentials.yml index 9a1d4df..22335bc 100644 --- a/.github/workflows/essentials.yml +++ b/.github/workflows/essentials.yml @@ -9,7 +9,7 @@ on: jobs: test: - name: Test + name: Quality checks & tests runs-on: ubuntu-latest strategy: matrix: @@ -40,9 +40,12 @@ jobs: target/ key: '${{ runner.os }}-cargo-${{ matrix.rust }}-hash-${{ hashFiles(''**/Cargo.lock'') }}' - - name: Lint + - name: Quality - cargo fmt run: | cargo fmt --all -- --check + + - name: Quality - cargo clippy + run: | cargo clippy -- -D warnings - name: Quality - convco check @@ -61,22 +64,29 @@ jobs: mv cargo-deny ~/.cargo/bin/ cargo deny check - - name: Install cargo check tools + - name: Quality - cargo audit check + run: | + curl -sSfL https://github.com/rustsec/rustsec/releases/download/cargo-audit%2Fv0.17.3/cargo-audit-x86_64-unknown-linux-musl-v0.17.3.tgz | tar zx --no-anchored cargo-audit --strip-components=1 + chmod +x cargo-audit + mv cargo-audit ~/.cargo/bin/ + rm -rf ~/.cargo/advisory-db/ + cargo audit --ignore RUSTSEC-2020-0071 # time-rs, but not used by chrono, see https://github.com/chronotope/chrono/issues/602 + + - name: Quality - cargo outdated timeout-minutes: 20 - if: ${{ matrix.rust == 'stable' }} run: | cargo install --locked cargo-outdated || true - # cargo install --locked cargo-udeps || true # needs nightly - cargo install --locked cargo-audit || true - cargo install --locked cargo-pants || true - - - name: Check - if: ${{ matrix.rust == 'stable' }} - run: | - cargo outdated --exit-code 1 - # cargo udeps rm -rf ~/.cargo/advisory-db - cargo audit --ignore RUSTSEC-2020-0071 # time-rs, but not used by chrono, see https://github.com/chronotope/chrono/issues/602 + cargo outdated --exit-code 1 + + # - name: Quality - cargo udeps (needs nightly) + # run: | + # cargo install --locked cargo-udeps || true + # cargo udeps + + - name: Quality - cargo pants + run: | + cargo install --locked cargo-pants || true cargo pants - name: Build (dev) diff --git a/.github/workflows/large-scope.yml b/.github/workflows/large-scope.yml index c5583d3..8b86137 100644 --- a/.github/workflows/large-scope.yml +++ b/.github/workflows/large-scope.yml @@ -8,7 +8,7 @@ on: jobs: test-versions: - name: Test version compatibility on Linux + name: Tests on Linux runs-on: ubuntu-latest strategy: matrix: @@ -38,27 +38,53 @@ jobs: target/ key: '${{ runner.os }}-cargo-${{ matrix.rust }}-hash-${{ hashFiles(''**/Cargo.lock'') }}' - - name: Lint + - name: Quality - cargo fmt run: | cargo fmt --all -- --check + + - name: Quality - cargo clippy + run: | cargo clippy -- -D warnings - # - name: Install cargo check tools + # - name: Quality - convco check + # run: | + # git show-ref + # curl -sSfLO https://github.com/convco/convco/releases/latest/download/convco-ubuntu.zip + # unzip convco-ubuntu.zip + # chmod +x convco + # ./convco check + # rm convco + + # - name: Quality - cargo deny check + # run: | + # curl -sSfL https://github.com/EmbarkStudios/cargo-deny/releases/download/0.12.2/cargo-deny-0.12.2-x86_64-unknown-linux-musl.tar.gz | tar zx --no-anchored cargo-deny --strip-components=1 + # chmod +x cargo-deny + # mv cargo-deny ~/.cargo/bin/ + # cargo deny check + + # - name: Quality - cargo audit check + # run: | + # curl -sSfL https://github.com/rustsec/rustsec/releases/download/cargo-audit%2Fv0.17.3/cargo-audit-x86_64-unknown-linux-musl-v0.17.3.tgz | tar zx --no-anchored cargo-audit --strip-components=1 + # chmod +x cargo-audit + # mv cargo-audit ~/.cargo/bin/ + # rm -rf ~/.cargo/advisory-db/ + # cargo audit --ignore RUSTSEC-2020-0071 # time-rs, but not used by chrono, see https://github.com/chronotope/chrono/issues/602 + + # - name: Quality - cargo outdated # timeout-minutes: 20 - # if: ${{ matrix.rust == 'stable' }} # run: | # cargo install --locked cargo-outdated || true - # # cargo install --locked cargo-udeps || true # needs nightly - # cargo install --locked cargo-audit || true - # cargo install --locked cargo-pants || true - - # - name: Check - # if: ${{ matrix.rust == 'stable' }} - # run: | - # cargo outdated --exit-code 1 - # # cargo udeps # rm -rf ~/.cargo/advisory-db - # cargo audit --ignore RUSTSEC-2020-0071 # time-rs, but not used by chrono, see https://github.com/chronotope/chrono/issues/602 + # cargo outdated --exit-code 1 + + # - name: Quality - cargo udeps (needs nightly) + # run: | + # cargo install --locked cargo-udeps || true + # cargo udeps + + # - name: Quality - cargo pants + # run: | + # cargo install --locked cargo-pants || true # cargo pants - name: Build (dev) @@ -71,7 +97,7 @@ jobs: run: ./ci/test_full.sh test-other-platforms: - name: Test on other platforms with stable + name: Tests on runs-on: '${{ matrix.os }}' strategy: matrix: @@ -79,14 +105,16 @@ jobs: - os: macos-latest target: x86_64-apple-darwin type: unix + toolchain: stable - os: macos-latest target: aarch64-apple-darwin type: unix + toolchain: stable steps: - name: Rust install uses: actions-rs/toolchain@v1 with: - toolchain: stable + toolchain: ${{ matrix.toolchain }} profile: minimal override: true target: ${{ matrix.target }} @@ -107,10 +135,13 @@ jobs: target/ key: '${{ runner.os }}-${{ matrix.target }}-cargo-stable-${{ hashFiles(''**/Cargo.lock'') }}' - - name: Lint - run: | - cargo fmt --all -- --check - cargo clippy -- -D warnings + # - name: Quality - cargo fmt + # run: | + # cargo fmt --all -- --check + + # - name: Quality - cargo clippy + # run: | + # cargo clippy -- -D warnings # - name: Quality - convco check # run: | @@ -120,7 +151,6 @@ jobs: # chmod +x convco # ./convco check # rm convco - # shell: bash # - name: Quality - cargo deny check # run: | @@ -128,25 +158,31 @@ jobs: # chmod +x cargo-deny # mv cargo-deny ~/.cargo/bin/ # cargo deny check - # shell: bash - - name: Install cargo check tools - timeout-minutes: 20 - run: | - cargo install --locked cargo-outdated || true - # cargo install --locked cargo-udeps || true # needs nightly - cargo install --locked cargo-audit || true - cargo install --locked cargo-pants || true - shell: bash + # - name: Quality - cargo audit check + # run: | + # curl -sSfL https://github.com/rustsec/rustsec/releases/download/cargo-audit%2Fv0.17.3/cargo-audit-x86_64-unknown-linux-musl-v0.17.3.tgz | tar zx --no-anchored cargo-audit --strip-components=1 + # chmod +x cargo-audit + # mv cargo-audit ~/.cargo/bin/ + # rm -rf ~/.cargo/advisory-db/ + # cargo audit --ignore RUSTSEC-2020-0071 # time-rs, but not used by chrono, see https://github.com/chronotope/chrono/issues/602 - - name: Check - run: | - cargo outdated --exit-code 1 - # cargo udeps - rm -rf ~/.cargo/advisory-db - cargo audit --ignore RUSTSEC-2020-0071 # time-rs, but not used by chrono, see https://github.com/chronotope/chrono/issues/602 - cargo pants - shell: bash + # - name: Quality - cargo outdated + # timeout-minutes: 20 + # run: | + # cargo install --locked cargo-outdated || true + # rm -rf ~/.cargo/advisory-db + # cargo outdated --exit-code 1 + + # - name: Quality - cargo udeps (needs nightly) + # run: | + # cargo install --locked cargo-udeps || true + # cargo udeps + + # - name: Quality - cargo pants + # run: | + # cargo install --locked cargo-pants || true + # cargo pants - name: Build (dev) run: cargo build --all-features