ci(github-actions): better structure & shorter action names

This commit is contained in:
graelo 2022-11-08 23:05:25 +01:00
parent 451726a8fa
commit 4b52de20d3
2 changed files with 98 additions and 52 deletions

View file

@ -9,7 +9,7 @@ on:
jobs: jobs:
test: test:
name: Test name: Quality checks & tests
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
@ -40,9 +40,12 @@ jobs:
target/ target/
key: '${{ runner.os }}-cargo-${{ matrix.rust }}-hash-${{ hashFiles(''**/Cargo.lock'') }}' key: '${{ runner.os }}-cargo-${{ matrix.rust }}-hash-${{ hashFiles(''**/Cargo.lock'') }}'
- name: Lint - name: Quality - cargo fmt
run: | run: |
cargo fmt --all -- --check cargo fmt --all -- --check
- name: Quality - cargo clippy
run: |
cargo clippy -- -D warnings cargo clippy -- -D warnings
- name: Quality - convco check - name: Quality - convco check
@ -61,22 +64,29 @@ jobs:
mv cargo-deny ~/.cargo/bin/ mv cargo-deny ~/.cargo/bin/
cargo deny check 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 timeout-minutes: 20
if: ${{ matrix.rust == 'stable' }}
run: | run: |
cargo install --locked cargo-outdated || true 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 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 cargo pants
- name: Build (dev) - name: Build (dev)

View file

@ -8,7 +8,7 @@ on:
jobs: jobs:
test-versions: test-versions:
name: Test version compatibility on Linux name: Tests on Linux
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
@ -38,27 +38,53 @@ jobs:
target/ target/
key: '${{ runner.os }}-cargo-${{ matrix.rust }}-hash-${{ hashFiles(''**/Cargo.lock'') }}' key: '${{ runner.os }}-cargo-${{ matrix.rust }}-hash-${{ hashFiles(''**/Cargo.lock'') }}'
- name: Lint - name: Quality - cargo fmt
run: | run: |
cargo fmt --all -- --check cargo fmt --all -- --check
- name: Quality - cargo clippy
run: |
cargo clippy -- -D warnings 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 # timeout-minutes: 20
# if: ${{ matrix.rust == 'stable' }}
# run: | # run: |
# cargo install --locked cargo-outdated || true # 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 # 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 # cargo pants
- name: Build (dev) - name: Build (dev)
@ -71,7 +97,7 @@ jobs:
run: ./ci/test_full.sh run: ./ci/test_full.sh
test-other-platforms: test-other-platforms:
name: Test on other platforms with stable name: Tests on
runs-on: '${{ matrix.os }}' runs-on: '${{ matrix.os }}'
strategy: strategy:
matrix: matrix:
@ -79,14 +105,16 @@ jobs:
- os: macos-latest - os: macos-latest
target: x86_64-apple-darwin target: x86_64-apple-darwin
type: unix type: unix
toolchain: stable
- os: macos-latest - os: macos-latest
target: aarch64-apple-darwin target: aarch64-apple-darwin
type: unix type: unix
toolchain: stable
steps: steps:
- name: Rust install - name: Rust install
uses: actions-rs/toolchain@v1 uses: actions-rs/toolchain@v1
with: with:
toolchain: stable toolchain: ${{ matrix.toolchain }}
profile: minimal profile: minimal
override: true override: true
target: ${{ matrix.target }} target: ${{ matrix.target }}
@ -107,10 +135,13 @@ jobs:
target/ target/
key: '${{ runner.os }}-${{ matrix.target }}-cargo-stable-${{ hashFiles(''**/Cargo.lock'') }}' key: '${{ runner.os }}-${{ matrix.target }}-cargo-stable-${{ hashFiles(''**/Cargo.lock'') }}'
- name: Lint # - name: Quality - cargo fmt
run: | # run: |
cargo fmt --all -- --check # cargo fmt --all -- --check
cargo clippy -- -D warnings
# - name: Quality - cargo clippy
# run: |
# cargo clippy -- -D warnings
# - name: Quality - convco check # - name: Quality - convco check
# run: | # run: |
@ -120,7 +151,6 @@ jobs:
# chmod +x convco # chmod +x convco
# ./convco check # ./convco check
# rm convco # rm convco
# shell: bash
# - name: Quality - cargo deny check # - name: Quality - cargo deny check
# run: | # run: |
@ -128,25 +158,31 @@ jobs:
# chmod +x cargo-deny # chmod +x cargo-deny
# mv cargo-deny ~/.cargo/bin/ # mv cargo-deny ~/.cargo/bin/
# cargo deny check # cargo deny check
# shell: bash
- name: Install cargo check tools # - name: Quality - cargo audit check
timeout-minutes: 20 # run: |
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
cargo install --locked cargo-outdated || true # chmod +x cargo-audit
# cargo install --locked cargo-udeps || true # needs nightly # mv cargo-audit ~/.cargo/bin/
cargo install --locked cargo-audit || true # rm -rf ~/.cargo/advisory-db/
cargo install --locked cargo-pants || true # cargo audit --ignore RUSTSEC-2020-0071 # time-rs, but not used by chrono, see https://github.com/chronotope/chrono/issues/602
shell: bash
- name: Check # - name: Quality - cargo outdated
run: | # timeout-minutes: 20
cargo outdated --exit-code 1 # 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 # 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 # - name: Quality - cargo pants
cargo pants # run: |
shell: bash # cargo install --locked cargo-pants || true
# cargo pants
- name: Build (dev) - name: Build (dev)
run: cargo build --all-features run: cargo build --all-features