Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(ci): migrate from abandoned actions-rs/* #6628

Merged
merged 2 commits into from
May 10, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 4 additions & 6 deletions .github/workflows/build-crates-individually.patch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,11 @@ jobs:
steps:
- uses: actions/checkout@v3.5.2

- 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/cargo@v1.0.3
# 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.
#
Expand Down
37 changes: 14 additions & 23 deletions .github/workflows/build-crates-individually.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,13 +52,11 @@ jobs:
steps:
- uses: actions/checkout@v3.5.2

- 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/cargo@v1.0.3
# 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.
#
Expand Down Expand Up @@ -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/cargo@v1.0.3
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/cargo@v1.0.3
with:
command: build
args: --package ${{ matrix.crate }}
run: |
cargo build --package ${{ matrix.crate }}

- name: Build ${{ matrix.crate }} crate with all features
uses: actions-rs/cargo@v1.0.3
with:
command: build
args: --package ${{ matrix.crate }} --all-features
run: |
cargo build --package ${{ matrix.crate }} --all-features
77 changes: 31 additions & 46 deletions .github/workflows/continous-integration-os.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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/cargo@v1.0.3
with:
command: fetch
run: |
cargo fetch

- name: Install LLVM on Windows
if: matrix.os == 'windows-latest'
Expand Down Expand Up @@ -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/cargo@v1.0.3
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]

Expand All @@ -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/cargo@v1.0.3
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:
Expand All @@ -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/cargo@v1.0.3
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.
Expand All @@ -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/cargo@v1.0.3
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 }}
Expand Down Expand Up @@ -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/cargo-install@v2.0.0
Expand Down
10 changes: 4 additions & 6 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,10 @@ jobs:
with:
persist-credentials: false

- uses: actions-rs/toolchain@v1.0.7
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
Expand Down
12 changes: 5 additions & 7 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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/actions-mdbook@v1.2.0
Expand Down
49 changes: 21 additions & 28 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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/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"

# TODO: keep this action until we find a better solution
- name: Run clippy action to produce annotations
uses: actions-rs/clippy-check@v1.0.7
if: ${{ steps.check_permissions.outputs.has-permission }}
Expand All @@ -95,12 +100,6 @@ jobs:
token: ${{ secrets.GITHUB_TOKEN }}
args: --all-features --all-targets -- -D warnings

- uses: actions-rs/toolchain@v1.0.1
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
Expand All @@ -124,20 +123,17 @@ jobs:
version: '3.20.1'
repo-token: ${{ secrets.GITHUB_TOKEN }}

- uses: actions-rs/toolchain@v1.0.6
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/cargo@v1.0.3
with:
command: fmt
args: --all -- --check
- run: |
cargo fmt --all -- --check

docs:
name: Rust doc
Expand Down Expand Up @@ -165,16 +161,13 @@ jobs:
version: '3.20.1'
repo-token: ${{ secrets.GITHUB_TOKEN }}

- uses: actions-rs/toolchain@v1.0.6
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/cargo@v1.0.3
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
Expand Down