chore(release): cut rc-2026.8.4 #587
This file contains hidden or 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
| name: CI | |
| on: | |
| push: | |
| branches: [main, "rc-*"] | |
| pull_request: | |
| branches: [main, "rc-*"] | |
| env: | |
| CARGO_TERM_COLOR: always | |
| RUSTFLAGS: "-D warnings" | |
| RUST_LOG: "off" | |
| jobs: | |
| fmt: | |
| name: Format | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt | |
| - run: cargo fmt --all -- --check | |
| clippy: | |
| name: Clippy | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: clippy | |
| - uses: Swatinem/rust-cache@v2 | |
| - run: cargo clippy --all-targets --all-features -- -D warnings | |
| test-unit: | |
| name: Unit Tests (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Run unit tests | |
| run: cargo test --lib --all | |
| - name: Run self-encryption unit tests | |
| run: cargo test -p ant-core --test unit_self_encrypt | |
| - name: Run merkle unit tests | |
| run: cargo test -p ant-core --test merkle_unit | |
| - name: Run node management integration tests | |
| run: cargo test -p ant-core --test daemon_integration --test node_add_integration -- --test-threads=1 | |
| test-e2e: | |
| name: E2E Tests (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Install Foundry (direct release download) | |
| # foundry-rs/foundry-toolchain calls foundryup which curls | |
| # api.github.com unauthenticated to resolve the nightly tag. | |
| # macOS runners on shared egress IPs hit the 60/h anonymous | |
| # rate limit and the install 403s. Setting GITHUB_TOKEN does | |
| # NOT help because foundryup ignores it. Instead: pull the | |
| # pinned release tarball directly from the GitHub Releases CDN | |
| # (no API call, no rate limit) and unpack to /usr/local/bin. | |
| shell: bash | |
| env: | |
| FOUNDRY_VERSION: v1.7.1 | |
| run: | | |
| set -euo pipefail | |
| os="$(uname -s | tr '[:upper:]' '[:lower:]')" | |
| arch="$(uname -m)" | |
| case "$os-$arch" in | |
| linux-x86_64) asset="foundry_${FOUNDRY_VERSION}_linux_amd64.tar.gz" ;; | |
| darwin-arm64) asset="foundry_${FOUNDRY_VERSION}_darwin_arm64.tar.gz" ;; | |
| darwin-x86_64) asset="foundry_${FOUNDRY_VERSION}_darwin_amd64.tar.gz" ;; | |
| *) echo "unsupported runner: $os-$arch"; exit 1 ;; | |
| esac | |
| url="https://github.com/foundry-rs/foundry/releases/download/${FOUNDRY_VERSION}/${asset}" | |
| echo "downloading $url" | |
| curl -sSL --retry 5 --retry-delay 5 "$url" -o /tmp/foundry.tar.gz | |
| sudo tar -xzf /tmp/foundry.tar.gz -C /usr/local/bin anvil forge cast chisel | |
| anvil --version | |
| forge --version | |
| - name: Run E2E tests (serial) | |
| run: cargo test -p ant-core --features test-utils --test e2e_chunk --test e2e_data --test e2e_file --test e2e_payment --test e2e_security --test e2e_cost_estimate --test e2e_adr0004 -- --test-threads=1 | |
| test-merkle: | |
| name: Merkle E2E (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| # Ubuntu runner is consistently slower than macOS for the 35-node | |
| # merkle testnet (each test spins up a fresh testnet, ~5 min each | |
| # on Ubuntu vs ~3 min on macOS). This cap has been outgrown three | |
| # times: 20 min timed out on Ubuntu before the 4th test (runs prior | |
| # to 2026-04-30), 40 min was grazed at 4 tests (PR #167), and 60 min | |
| # was breached with the ADR-0003 six-test suite (PR #174: macOS | |
| # passed at 57m09s, Ubuntu canceled at 60m20s mid-run with no test | |
| # failure — V2-1046). 90 min gives the observed ~60-min runtime real | |
| # headroom while still catching genuine hangs (the neighboring E2E | |
| # job has no explicit cap at all, so 90 remains the tighter bound). | |
| timeout-minutes: 90 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Install Foundry (direct release download) | |
| # Bypass foundry-toolchain / foundryup because they 403 on | |
| # macOS runners against the anonymous 60/h api.github.com | |
| # rate limit (see e2e step above for full rationale). | |
| shell: bash | |
| env: | |
| FOUNDRY_VERSION: v1.7.1 | |
| run: | | |
| set -euo pipefail | |
| os="$(uname -s | tr '[:upper:]' '[:lower:]')" | |
| arch="$(uname -m)" | |
| case "$os-$arch" in | |
| linux-x86_64) asset="foundry_${FOUNDRY_VERSION}_linux_amd64.tar.gz" ;; | |
| darwin-arm64) asset="foundry_${FOUNDRY_VERSION}_darwin_arm64.tar.gz" ;; | |
| darwin-x86_64) asset="foundry_${FOUNDRY_VERSION}_darwin_amd64.tar.gz" ;; | |
| *) echo "unsupported runner: $os-$arch"; exit 1 ;; | |
| esac | |
| url="https://github.com/foundry-rs/foundry/releases/download/${FOUNDRY_VERSION}/${asset}" | |
| echo "downloading $url" | |
| curl -sSL --retry 5 --retry-delay 5 "$url" -o /tmp/foundry.tar.gz | |
| sudo tar -xzf /tmp/foundry.tar.gz -C /usr/local/bin anvil forge cast chisel | |
| anvil --version | |
| forge --version | |
| - name: Run merkle E2E tests (35-node testnet) | |
| run: cargo test -p ant-core --test e2e_merkle -- --test-threads=1 | |
| env: | |
| RUST_LOG: "warn" | |
| doc: | |
| name: Documentation | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Build documentation | |
| run: cargo doc --all-features --no-deps | |
| env: | |
| RUSTDOCFLAGS: "-D warnings" | |
| build: | |
| name: Build (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Build release | |
| run: cargo build --release | |
| security: | |
| name: Security Audit | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - name: Install cargo-audit | |
| run: cargo install cargo-audit | |
| - name: Run security audit | |
| run: >- | |
| cargo audit | |
| --ignore RUSTSEC-2023-0089 | |
| --ignore RUSTSEC-2024-0388 | |
| --ignore RUSTSEC-2024-0436 | |
| --ignore RUSTSEC-2025-0134 | |
| --ignore RUSTSEC-2025-0141 | |
| --ignore RUSTSEC-2026-0012 | |
| --ignore RUSTSEC-2026-0044 | |
| --ignore RUSTSEC-2026-0045 | |
| --ignore RUSTSEC-2026-0046 | |
| --ignore RUSTSEC-2026-0047 | |
| --ignore RUSTSEC-2026-0048 | |
| --ignore RUSTSEC-2026-0049 | |
| --ignore RUSTSEC-2026-0067 | |
| --ignore RUSTSEC-2026-0068 |