Skip to content

chore(release): cut rc-2026.8.4 #587

chore(release): cut rc-2026.8.4

chore(release): cut rc-2026.8.4 #587

Workflow file for this run

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