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

merge queue: embarking main (d07dc7f) and #6628 together #6651

Closed
wants to merge 3 commits into from
Closed
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/[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.
#
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/[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.
#
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/[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
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/[email protected]
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/[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]

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/[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:
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/[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.
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/[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 }}
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/[email protected]
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/[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
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/[email protected]
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/[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 }}
Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down