-
Notifications
You must be signed in to change notification settings - Fork 111
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor(ci): migrate from abandoned
actions-rs/*
(#6628)
* refactor(ci): migrate from abandoned `actions-rs/*` * ci(lint): keep clippy action until we find a better candidate
- Loading branch information
1 parent
d07dc7f
commit 25ca4cc
Showing
6 changed files
with
79 additions
and
116 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -25,13 +25,11 @@ jobs: | |
steps: | ||
- uses: actions/[email protected] | ||
|
||
- uses: actions-rs/toolchain@v1 | ||
with: | ||
toolchain: stable | ||
profile: minimal | ||
override: true | ||
# Setup Rust with stable toolchain and minimal profile | ||
- name: Setup Rust | ||
run: | | ||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=stable --profile=minimal | ||
- uses: actions-rs/[email protected] | ||
# This step is meant to dynamically create a JSON containing the values of each crate | ||
# available in this repo in the root directory. We use `cargo tree` to accomplish this task. | ||
# | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -52,13 +52,11 @@ jobs: | |
steps: | ||
- uses: actions/[email protected] | ||
|
||
- uses: actions-rs/toolchain@v1 | ||
with: | ||
toolchain: stable | ||
profile: minimal | ||
override: true | ||
# Setup Rust with stable toolchain and minimal profile | ||
- name: Setup Rust | ||
run: | | ||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=stable --profile=minimal | ||
- uses: actions-rs/[email protected] | ||
# This step is meant to dynamically create a JSON containing the values of each crate | ||
# available in this repo in the root directory. We use `cargo tree` to accomplish this task. | ||
# | ||
|
@@ -117,30 +115,23 @@ jobs: | |
version: '3.20.1' | ||
repo-token: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- uses: actions-rs/toolchain@v1 | ||
with: | ||
toolchain: stable | ||
profile: minimal | ||
override: true | ||
# Setup Rust with stable toolchain and minimal profile | ||
- name: Setup Rust | ||
run: | | ||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=stable --profile=minimal | ||
# We could use `features: ['', '--all-features', '--no-default-features']` as a matrix argument, | ||
# but it's faster to run these commands sequentially, so they can re-use the local cargo cache. | ||
# | ||
# Some Zebra crates do not have any features, and most don't have any default features. | ||
- name: Build ${{ matrix.crate }} crate with no default features | ||
uses: actions-rs/[email protected] | ||
with: | ||
command: build | ||
args: --package ${{ matrix.crate }} --no-default-features | ||
run: | | ||
cargo build --package ${{ matrix.crate }} --no-default-features | ||
- name: Build ${{ matrix.crate }} crate normally | ||
uses: actions-rs/[email protected] | ||
with: | ||
command: build | ||
args: --package ${{ matrix.crate }} | ||
run: | | ||
cargo build --package ${{ matrix.crate }} | ||
- name: Build ${{ matrix.crate }} crate with all features | ||
uses: actions-rs/[email protected] | ||
with: | ||
command: build | ||
args: --package ${{ matrix.crate }} --all-features | ||
run: | | ||
cargo build --package ${{ matrix.crate }} --all-features |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -94,13 +94,13 @@ jobs: | |
version: '3.20.1' | ||
repo-token: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- uses: actions-rs/toolchain@v1 | ||
with: | ||
toolchain: ${{ matrix.rust }} | ||
profile: minimal | ||
override: true | ||
# Setup Rust with ${{ matrix.rust }} toolchain and minimal profile | ||
- name: Setup Rust | ||
run: | | ||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=${{ matrix.rust }} --profile=minimal | ||
- uses: Swatinem/rust-cache@v1 | ||
- uses: Swatinem/rust-cache@v2.2.1 | ||
# TODO: change Rust cache target directory on Windows, | ||
# or remove this workaround once the build is more efficient (#3005). | ||
#with: | ||
|
@@ -120,9 +120,8 @@ jobs: | |
echo "CARGO_TARGET_DIR=C:\\zebra-target" | Out-File -FilePath "$env:GITHUB_ENV" -Encoding utf8 -Append | ||
- name: cargo fetch | ||
uses: actions-rs/[email protected] | ||
with: | ||
command: fetch | ||
run: | | ||
cargo fetch | ||
- name: Install LLVM on Windows | ||
if: matrix.os == 'windows-latest' | ||
|
@@ -177,10 +176,8 @@ jobs: | |
# | ||
# If some tests hang, add "-- --nocapture" for just that test, or for all the tests. | ||
- name: Run tests${{ matrix.features }} | ||
uses: actions-rs/[email protected] | ||
with: | ||
command: test | ||
args: ${{ matrix.features }} --release --verbose --workspace | ||
run: | | ||
cargo test ${{ matrix.features }} --release --verbose --workspace | ||
# Explicitly run any tests that are usually #[ignored] | ||
|
||
|
@@ -189,11 +186,8 @@ jobs: | |
# Currently, this also skips large sync with `getblocktemplate-rpcs`, | ||
# but that is already covered by the Docker tests. | ||
if: matrix.os == 'macos-latest' | ||
uses: actions-rs/[email protected] | ||
with: | ||
command: test | ||
# Note: this only runs the zebrad acceptance tests, because re-running all the test binaries is slow on Windows | ||
args: ${{ matrix.features }} --release --verbose --package zebrad --test acceptance -- --nocapture --include-ignored sync_large_checkpoints_ | ||
run: | | ||
cargo test ${{ matrix.features }} --release --verbose --package zebrad --test acceptance -- --nocapture --include-ignored sync_large_checkpoints_ | ||
# Install Zebra with lockfile dependencies, with no caching and default features | ||
install-from-lockfile-no-cache: | ||
|
@@ -206,17 +200,14 @@ jobs: | |
with: | ||
persist-credentials: false | ||
|
||
- uses: actions-rs/toolchain@v1 | ||
with: | ||
toolchain: stable | ||
profile: minimal | ||
override: true | ||
# Setup Rust with stable toolchain and minimal profile | ||
- name: Setup Rust | ||
run: | | ||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=stable --profile=minimal | ||
- name: Install | ||
uses: actions-rs/[email protected] | ||
with: | ||
command: install | ||
args: --locked --path ./zebrad/ zebrad | ||
- name: Install zebrad | ||
run: | | ||
cargo install --locked --path ./zebrad/ zebrad | ||
# Check that Cargo.lock includes any Cargo.toml changes. | ||
# This check makes sure the `cargo-deny` crate dependency checks are accurate. | ||
|
@@ -237,22 +228,18 @@ jobs: | |
version: '3.20.1' | ||
repo-token: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- uses: actions-rs/toolchain@v1 | ||
with: | ||
toolchain: stable | ||
profile: minimal | ||
override: true | ||
# Setup Rust with stable toolchain and minimal profile | ||
- name: Setup Rust | ||
run: | | ||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=stable --profile=minimal | ||
- uses: Swatinem/rust-cache@v1 | ||
- uses: Swatinem/rust-cache@v2.2.1 | ||
with: | ||
# TODO: change to shared-key when we switch to Swatinem/rust-cache@v2 | ||
sharedKey: "clippy-cargo-lock" | ||
shared-key: "clippy-cargo-lock" | ||
|
||
- name: Check Cargo.lock is up to date | ||
uses: actions-rs/[email protected] | ||
with: | ||
command: check | ||
args: --locked --all-features --all-targets | ||
run: | | ||
cargo check --locked --all-features --all-targets | ||
cargo-deny: | ||
name: Check deny.toml ${{ matrix.checks }} ${{ matrix.features }} | ||
|
@@ -290,12 +277,10 @@ jobs: | |
with: | ||
persist-credentials: false | ||
|
||
- name: Install toolchain | ||
uses: actions-rs/toolchain@v1 | ||
with: | ||
toolchain: stable | ||
profile: minimal | ||
override: true | ||
# Setup Rust with stable toolchain and minimal profile | ||
- name: Setup Rust | ||
run: | | ||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=stable --profile=minimal | ||
- name: Install cargo-machete | ||
uses: baptiste0928/[email protected] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -61,12 +61,10 @@ jobs: | |
with: | ||
persist-credentials: false | ||
|
||
- uses: actions-rs/[email protected] | ||
with: | ||
toolchain: stable | ||
override: true | ||
profile: minimal | ||
components: llvm-tools-preview | ||
# Setup Rust with stable toolchain and minimal profile | ||
- name: Setup Rust | ||
run: | | ||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=stable --profile=minimal --component=llvm-tools-preview | ||
- name: Install cargo-llvm-cov cargo command | ||
run: cargo install cargo-llvm-cov | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -51,14 +51,12 @@ jobs: | |
version: '3.20.1' | ||
repo-token: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Install latest beta | ||
uses: actions-rs/toolchain@v1 | ||
with: | ||
toolchain: beta | ||
components: rust-docs | ||
override: true | ||
# Setup Rust with beta toolchain and default profile (to include rust-docs) | ||
- name: Setup Rust | ||
run: | | ||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=beta --profile=default | ||
- uses: Swatinem/rust-cache@v1 | ||
- uses: Swatinem/rust-cache@v2.2.1 | ||
|
||
- name: Setup mdBook | ||
uses: peaceiris/[email protected] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -81,11 +81,16 @@ jobs: | |
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- uses: Swatinem/rust-cache@v1 | ||
# Setup Rust with stable toolchain and default profile | ||
- name: Setup Rust | ||
run: | | ||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=stable --profile=default | ||
- uses: Swatinem/[email protected] | ||
with: | ||
# TODO: change to shared-key when we switch to Swatinem/rust-cache@v2 | ||
sharedKey: "clippy-cargo-lock" | ||
shared-key: "clippy-cargo-lock" | ||
|
||
# TODO: keep this action until we find a better solution | ||
- name: Run clippy action to produce annotations | ||
uses: actions-rs/[email protected] | ||
if: ${{ steps.check_permissions.outputs.has-permission }} | ||
|
@@ -95,12 +100,6 @@ jobs: | |
token: ${{ secrets.GITHUB_TOKEN }} | ||
args: --all-features --all-targets -- -D warnings | ||
|
||
- uses: actions-rs/[email protected] | ||
if: ${{ !steps.check_permissions.outputs.has-permission }} | ||
with: | ||
toolchain: stable | ||
override: true | ||
|
||
- name: Run clippy manually without annotations | ||
if: ${{ !steps.check_permissions.outputs.has-permission }} | ||
run: cargo clippy --all-features --all-targets -- -D warnings | ||
|
@@ -124,20 +123,17 @@ jobs: | |
version: '3.20.1' | ||
repo-token: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- uses: actions-rs/[email protected] | ||
with: | ||
toolchain: stable | ||
components: rustfmt | ||
override: true | ||
# Setup Rust with stable toolchain and default profile | ||
- name: Setup Rust | ||
run: | | ||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=stable --profile=default | ||
# We don't cache `fmt` outputs because the job is quick, | ||
# and we want to use the limited GitHub actions cache space for slower jobs. | ||
#- uses: Swatinem/rust-cache@v1 | ||
#- uses: Swatinem/rust-cache@v2.2.1 | ||
|
||
- uses: actions-rs/[email protected] | ||
with: | ||
command: fmt | ||
args: --all -- --check | ||
- run: | | ||
cargo fmt --all -- --check | ||
docs: | ||
name: Rust doc | ||
|
@@ -165,16 +161,13 @@ jobs: | |
version: '3.20.1' | ||
repo-token: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- uses: actions-rs/[email protected] | ||
with: | ||
toolchain: stable | ||
profile: minimal | ||
override: true | ||
# Setup Rust with stable toolchain and default profile | ||
- name: Setup Rust | ||
run: | | ||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=stable --profile=default | ||
- uses: actions-rs/[email protected] | ||
with: | ||
command: doc | ||
args: --no-deps --document-private-items --all-features | ||
- run: | | ||
cargo doc --no-deps --document-private-items --all-features | ||
actionlint: | ||
runs-on: ubuntu-latest | ||
|