From 08e3e2fa8c4c3ea49384fb62a2eaccaa9406c300 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Wed, 4 Mar 2026 13:31:53 +0100 Subject: [PATCH 01/62] Plan fireactions workflow tests --- .github/workflows/apply-benchmark-patch.yml | 2 +- .github/workflows/cargo-audit.yml | 2 +- .../workflows/check-bittensor-e2e-tests.yml | 2 +- .github/workflows/check-devnet.yml | 4 +- .github/workflows/check-docker.yml | 2 +- .github/workflows/check-finney.yml | 4 +- .github/workflows/check-node-compat.yml | 4 +- .github/workflows/check-rust.yml | 14 ++--- .github/workflows/check-testnet.yml | 4 +- .github/workflows/contract-tests.yml | 2 +- .github/workflows/docker-localnet.yml | 4 +- .github/workflows/docker.yml | 4 +- .github/workflows/fireactions-smoke.yml | 53 +++++++++++++++++++ .github/workflows/hotfixes.yml | 2 +- .github/workflows/label-triggers.yml | 2 +- .github/workflows/require-clean-merges.yml | 2 +- .github/workflows/run-benchmarks.yml | 2 +- .github/workflows/rustdocs.yml | 4 +- .github/workflows/try-runtime.yml | 6 +-- .github/workflows/update-chainspec.yml | 2 +- 20 files changed, 87 insertions(+), 34 deletions(-) create mode 100644 .github/workflows/fireactions-smoke.yml diff --git a/.github/workflows/apply-benchmark-patch.yml b/.github/workflows/apply-benchmark-patch.yml index 16b499bea6..1e2308f827 100644 --- a/.github/workflows/apply-benchmark-patch.yml +++ b/.github/workflows/apply-benchmark-patch.yml @@ -13,7 +13,7 @@ permissions: jobs: apply: if: ${{ github.event.label.name == 'apply-benchmark-patch' }} - runs-on: Benchmarking + runs-on: [self-hosted, fireactions] steps: - name: Check out PR branch diff --git a/.github/workflows/cargo-audit.yml b/.github/workflows/cargo-audit.yml index 04046c11d4..8db33a4f60 100644 --- a/.github/workflows/cargo-audit.yml +++ b/.github/workflows/cargo-audit.yml @@ -13,7 +13,7 @@ concurrency: jobs: cargo-audit: name: cargo audit - runs-on: [self-hosted, type-ccx13] + runs-on: [self-hosted, fireactions] if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip-cargo-audit') }} steps: - name: Check-out repositoroy under $GITHUB_WORKSPACE diff --git a/.github/workflows/check-bittensor-e2e-tests.yml b/.github/workflows/check-bittensor-e2e-tests.yml index bad36f7d9d..a6c0032dee 100644 --- a/.github/workflows/check-bittensor-e2e-tests.yml +++ b/.github/workflows/check-bittensor-e2e-tests.yml @@ -190,7 +190,7 @@ jobs: strategy: matrix: platform: - - runner: [self-hosted, type-ccx33] + - runner: [self-hosted, fireactions] triple: x86_64-unknown-linux-gnu arch: amd64 runtime: ["fast-runtime", "non-fast-runtime"] diff --git a/.github/workflows/check-devnet.yml b/.github/workflows/check-devnet.yml index 8d3db55001..7c621c3d67 100644 --- a/.github/workflows/check-devnet.yml +++ b/.github/workflows/check-devnet.yml @@ -15,13 +15,13 @@ env: jobs: check-spec-version: name: Check spec_version bump - runs-on: [self-hosted, type-ccx33] + runs-on: [self-hosted, fireactions] if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-spec-version-bump') }} steps: - name: Dependencies run: | sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl libssl-dev llvm libudev-dev protobuf-compiler pkg-config + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl libssl-dev llvm libudev-dev protobuf-compiler pkg-config bc - name: Install Rust uses: actions-rs/toolchain@v1 diff --git a/.github/workflows/check-docker.yml b/.github/workflows/check-docker.yml index da5054fd6d..b3a30a8dca 100644 --- a/.github/workflows/check-docker.yml +++ b/.github/workflows/check-docker.yml @@ -9,7 +9,7 @@ concurrency: jobs: build: - runs-on: [self-hosted, type-ccx33] + runs-on: [self-hosted, fireactions] steps: - name: Checkout code diff --git a/.github/workflows/check-finney.yml b/.github/workflows/check-finney.yml index 6b056ef97e..9596665761 100644 --- a/.github/workflows/check-finney.yml +++ b/.github/workflows/check-finney.yml @@ -15,13 +15,13 @@ env: jobs: check-spec-version: name: Check spec_version bump - runs-on: [self-hosted, type-ccx33] + runs-on: [self-hosted, fireactions] if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-spec-version-bump') }} steps: - name: Dependencies run: | sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl libssl-dev llvm libudev-dev protobuf-compiler pkg-config + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl libssl-dev llvm libudev-dev protobuf-compiler pkg-config bc - name: Install Rust uses: actions-rs/toolchain@v1 diff --git a/.github/workflows/check-node-compat.yml b/.github/workflows/check-node-compat.yml index b52a7a88ba..100f21da7e 100644 --- a/.github/workflows/check-node-compat.yml +++ b/.github/workflows/check-node-compat.yml @@ -15,7 +15,7 @@ env: jobs: build: name: build ${{ matrix.version.name }} - runs-on: [self-hosted, type-ccx33] + runs-on: [self-hosted, fireactions] if: contains(github.event.pull_request.labels.*.name, 'check-node-compat') env: RUST_BACKTRACE: full @@ -60,7 +60,7 @@ jobs: test: needs: [build] - runs-on: [self-hosted, type-ccx33] + runs-on: [self-hosted, fireactions] steps: - name: Download old node binary uses: actions/download-artifact@v4 diff --git a/.github/workflows/check-rust.yml b/.github/workflows/check-rust.yml index 4b975959d0..fd260fdd7d 100644 --- a/.github/workflows/check-rust.yml +++ b/.github/workflows/check-rust.yml @@ -23,7 +23,7 @@ jobs: # runs cargo fmt cargo-fmt: name: cargo fmt - runs-on: [self-hosted, type-ccx13] + runs-on: [self-hosted, fireactions] env: RUST_BACKTRACE: full steps: @@ -67,7 +67,7 @@ jobs: cargo-clippy-default-features: name: cargo clippy - runs-on: [self-hosted, type-ccx13] + runs-on: [self-hosted, fireactions] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 @@ -97,7 +97,7 @@ jobs: cargo-check-lints: name: check custom lints - runs-on: [self-hosted, type-ccx13] + runs-on: [self-hosted, fireactions] env: RUSTFLAGS: -D warnings RUST_BACKTRACE: full @@ -130,7 +130,7 @@ jobs: cargo-clippy-all-features: name: cargo clippy --all-features - runs-on: [self-hosted, type-ccx13] + runs-on: [self-hosted, fireactions] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 @@ -161,7 +161,7 @@ jobs: # runs cargo test --workspace --all-features cargo-test: name: cargo test - runs-on: [self-hosted, type-ccx43] + runs-on: [self-hosted, fireactions] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 @@ -191,7 +191,7 @@ jobs: # ensures cargo fix has no trivial changes that can be applied cargo-fix: name: cargo fix - runs-on: [self-hosted, type-ccx13] + runs-on: [self-hosted, fireactions] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 @@ -230,7 +230,7 @@ jobs: check-feature-propagation: name: zepter run check - runs-on: [self-hosted, type-ccx13] + runs-on: [self-hosted, fireactions] steps: - name: Checkout diff --git a/.github/workflows/check-testnet.yml b/.github/workflows/check-testnet.yml index 219d99051f..45a8f1207a 100644 --- a/.github/workflows/check-testnet.yml +++ b/.github/workflows/check-testnet.yml @@ -15,13 +15,13 @@ env: jobs: check-spec-version: name: Check spec_version bump - runs-on: [self-hosted, type-ccx33] + runs-on: [self-hosted, fireactions] if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-spec-version-bump') }} steps: - name: Dependencies run: | sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl libssl-dev llvm libudev-dev protobuf-compiler pkg-config + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl libssl-dev llvm libudev-dev protobuf-compiler pkg-config bc - name: Install Rust uses: actions-rs/toolchain@v1 diff --git a/.github/workflows/contract-tests.yml b/.github/workflows/contract-tests.yml index d524af0c64..a5161582e3 100644 --- a/.github/workflows/contract-tests.yml +++ b/.github/workflows/contract-tests.yml @@ -24,7 +24,7 @@ permissions: jobs: run: - runs-on: [self-hosted, type-ccx13] + runs-on: [self-hosted, fireactions] env: RUST_BACKTRACE: full steps: diff --git a/.github/workflows/docker-localnet.yml b/.github/workflows/docker-localnet.yml index 2218e886ea..a2818e68f2 100644 --- a/.github/workflows/docker-localnet.yml +++ b/.github/workflows/docker-localnet.yml @@ -95,7 +95,7 @@ jobs: matrix: platform: # triple names used `in scripts/install_prebuilt_binaries.sh` file - - runner: [self-hosted, type-ccx33] + - runner: [self-hosted, fireactions] triple: x86_64-unknown-linux-gnu arch: amd64 - runner: [ubuntu-24.04-arm] @@ -162,7 +162,7 @@ jobs: # Collect all artifacts and publish them to docker repo docker: needs: [setup, artifacts] - runs-on: [self-hosted, type-ccx33] + runs-on: [self-hosted, fireactions] defaults: run: working-directory: ${{ github.workspace }} diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index a60f0f9d82..ccfc52f175 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -27,7 +27,7 @@ permissions: jobs: publish: - runs-on: [self-hosted, type-ccx53, type-ccx43, type-ccx33] + runs-on: [self-hosted, fireactions] steps: - name: Determine Docker tag and ref @@ -71,4 +71,4 @@ jobs: platforms: linux/amd64,linux/arm64 tags: | ghcr.io/${{ github.repository }}:${{ env.tag }} - ${{ env.latest_tag == 'true' && format('ghcr.io/{0}:latest', github.repository) || '' }} \ No newline at end of file + ${{ env.latest_tag == 'true' && format('ghcr.io/{0}:latest', github.repository) || '' }} diff --git a/.github/workflows/fireactions-smoke.yml b/.github/workflows/fireactions-smoke.yml new file mode 100644 index 0000000000..83212e3805 --- /dev/null +++ b/.github/workflows/fireactions-smoke.yml @@ -0,0 +1,53 @@ +name: Fireactions Smoke + +on: + workflow_dispatch: + +concurrency: + group: fireactions-smoke-${{ github.ref }} + cancel-in-progress: true + +jobs: + smoke: + runs-on: [self-hosted, fireactions] + timeout-minutes: 30 + steps: + - name: Check runner identity + run: | + whoami + id + groups + + - name: Install compatibility dependency + run: | + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" bc + + - name: Verify required tools + run: | + for cmd in docker gh jq git curl unzip bc; do + command -v "$cmd" + done + docker --version + gh --version + jq --version + git --version + curl --version + unzip --version + bc --version || bc -v + + - name: Install Rust toolchain + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + + - name: Verify Rust toolchain + run: | + rustc --version + cargo --version + command -v cargo + + - name: Run Docker smoke test + run: | + docker pull hello-world:latest + docker run --rm hello-world:latest diff --git a/.github/workflows/hotfixes.yml b/.github/workflows/hotfixes.yml index 7fcf28efb6..da47f8525f 100644 --- a/.github/workflows/hotfixes.yml +++ b/.github/workflows/hotfixes.yml @@ -10,7 +10,7 @@ permissions: jobs: handle-hotfix-pr: - runs-on: [self-hosted, type-ccx13] + runs-on: [self-hosted, fireactions] steps: - name: Check if PR is a hotfix into `main` if: > diff --git a/.github/workflows/label-triggers.yml b/.github/workflows/label-triggers.yml index 8c7803b2e3..7ac0b521c6 100644 --- a/.github/workflows/label-triggers.yml +++ b/.github/workflows/label-triggers.yml @@ -13,7 +13,7 @@ permissions: jobs: comment_on_breaking_change: - runs-on: [self-hosted, type-ccx13] + runs-on: [self-hosted, fireactions] steps: - name: Check if 'breaking change' label is added if: github.event.label.name == 'breaking-change' diff --git a/.github/workflows/require-clean-merges.yml b/.github/workflows/require-clean-merges.yml index dd7a8829e7..e942828a53 100644 --- a/.github/workflows/require-clean-merges.yml +++ b/.github/workflows/require-clean-merges.yml @@ -9,7 +9,7 @@ on: jobs: assert-clean-merges: - runs-on: [self-hosted, type-ccx13] + runs-on: [self-hosted, fireactions] steps: - name: Checkout Repository uses: actions/checkout@v4 diff --git a/.github/workflows/run-benchmarks.yml b/.github/workflows/run-benchmarks.yml index 12df3f8ab6..5140d860d3 100644 --- a/.github/workflows/run-benchmarks.yml +++ b/.github/workflows/run-benchmarks.yml @@ -16,7 +16,7 @@ concurrency: jobs: validate-benchmarks: - runs-on: Benchmarking + runs-on: [self-hosted, fireactions] env: SKIP_BENCHMARKS: "0" diff --git a/.github/workflows/rustdocs.yml b/.github/workflows/rustdocs.yml index 5b3b1d5baf..f655f8d02f 100644 --- a/.github/workflows/rustdocs.yml +++ b/.github/workflows/rustdocs.yml @@ -15,7 +15,7 @@ env: jobs: build: - runs-on: [self-hosted, type-ccx13] + runs-on: [self-hosted, fireactions] steps: - name: Checkout code @@ -54,7 +54,7 @@ jobs: deploy: needs: build - runs-on: [self-hosted, type-ccx13] + runs-on: [self-hosted, fireactions] permissions: pages: write diff --git a/.github/workflows/try-runtime.yml b/.github/workflows/try-runtime.yml index 98fa613d6a..d5cb3667b4 100644 --- a/.github/workflows/try-runtime.yml +++ b/.github/workflows/try-runtime.yml @@ -14,7 +14,7 @@ jobs: check-devnet: name: check devnet if: github.base_ref != 'main' - runs-on: [self-hosted, type-ccx33] + runs-on: [self-hosted, fireactions] steps: - name: Checkout sources uses: actions/checkout@v4 @@ -45,7 +45,7 @@ jobs: check-testnet: name: check testnet if: github.base_ref != 'main' - runs-on: [self-hosted, type-ccx33] + runs-on: [self-hosted, fireactions] steps: - name: Checkout sources uses: actions/checkout@v4 @@ -76,7 +76,7 @@ jobs: check-finney: name: check finney # if: github.base_ref == 'testnet' || github.base_ref == 'devnet' || github.base_ref == 'main' - runs-on: [self-hosted, type-ccx33] + runs-on: [self-hosted, fireactions] steps: - name: Checkout sources uses: actions/checkout@v4 diff --git a/.github/workflows/update-chainspec.yml b/.github/workflows/update-chainspec.yml index ad7f0fc943..71fa44bf7b 100644 --- a/.github/workflows/update-chainspec.yml +++ b/.github/workflows/update-chainspec.yml @@ -18,7 +18,7 @@ env: jobs: update-chainspecs: - runs-on: [self-hosted, type-ccx33] + runs-on: [self-hosted, fireactions] permissions: contents: write if: > From d31589034a3f055ab0e33d69a44384bd07f708dd Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Wed, 4 Mar 2026 13:40:08 +0100 Subject: [PATCH 02/62] test(ci): add fireactions no-install dry-run validation workflows --- .github/workflows/fireactions-smoke.yml | 9 +- ...reactions-apply-benchmark-patch-dryrun.yml | 116 ++++++++++++++ .../test-fireactions-docker-dryrun.yml | 61 +++++++ ...est-fireactions-docker-localnet-dryrun.yml | 149 ++++++++++++++++++ ...est-fireactions-hotfixes-labels-dryrun.yml | 109 +++++++++++++ .../test-fireactions-noinstall-probes.yml | 136 ++++++++++++++++ .../test-fireactions-rustdocs-dryrun.yml | 68 ++++++++ ...st-fireactions-update-chainspec-dryrun.yml | 91 +++++++++++ 8 files changed, 734 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml create mode 100644 .github/workflows/test-fireactions-docker-dryrun.yml create mode 100644 .github/workflows/test-fireactions-docker-localnet-dryrun.yml create mode 100644 .github/workflows/test-fireactions-hotfixes-labels-dryrun.yml create mode 100644 .github/workflows/test-fireactions-noinstall-probes.yml create mode 100644 .github/workflows/test-fireactions-rustdocs-dryrun.yml create mode 100644 .github/workflows/test-fireactions-update-chainspec-dryrun.yml diff --git a/.github/workflows/fireactions-smoke.yml b/.github/workflows/fireactions-smoke.yml index 83212e3805..0d181c5a54 100644 --- a/.github/workflows/fireactions-smoke.yml +++ b/.github/workflows/fireactions-smoke.yml @@ -12,17 +12,16 @@ jobs: runs-on: [self-hosted, fireactions] timeout-minutes: 30 steps: + - name: Enforce no-install campaign mode + run: | + echo "No system package installs are allowed in this validation campaign." + - name: Check runner identity run: | whoami id groups - - name: Install compatibility dependency - run: | - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" bc - - name: Verify required tools run: | for cmd in docker gh jq git curl unzip bc; do diff --git a/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml b/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml new file mode 100644 index 0000000000..94bed6560b --- /dev/null +++ b/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml @@ -0,0 +1,116 @@ +name: Test Fireactions Apply Benchmark Patch Dry-Run + +on: + workflow_dispatch: + inputs: + ref: + description: "Branch or tag to validate" + required: true + default: "fireactions-runners" + dry_run: + description: "Must remain true for this test workflow" + required: true + default: "true" + pr_number: + description: "PR number to fetch benchmark artifact from (optional)" + required: false + default: "" + +permissions: + contents: read + pull-requests: read + actions: read + +concurrency: + group: test-fireactions-apply-benchmark-patch-dryrun-${{ github.ref }} + cancel-in-progress: true + +jobs: + apply-dryrun: + runs-on: [self-hosted, fireactions] + timeout-minutes: 30 + steps: + - name: Enforce dry-run mode + run: | + if [ "${{ github.event.inputs.dry_run }}" != "true" ]; then + echo "dry_run must be true for this workflow." + exit 1 + fi + + - name: Checkout target ref + uses: actions/checkout@v4 + with: + ref: ${{ github.event.inputs.ref }} + + - name: Dependency gate (no installs) + run: | + set -euo pipefail + for cmd in gh git tar; do + command -v "$cmd" + done + + - name: Download latest bench patch artifact from benchmark workflow + if: ${{ github.event.inputs.pr_number != '' }} + uses: dawidd6/action-download-artifact@v3 + with: + workflow: run-benchmarks.yml + pr: ${{ github.event.inputs.pr_number }} + name: bench-patch + path: . + allow_forks: true + check_artifacts: true + search_artifacts: true + workflow_conclusion: "" + if_no_artifact_found: warn + + - name: Extract bench patch archive + run: | + set -euo pipefail + if [ -f "bench-patch.tgz" ]; then + tar -xzf bench-patch.tgz + elif [ -f "bench-patch/bench-patch.tgz" ]; then + tar -xzf bench-patch/bench-patch.tgz + else + echo "No bench patch archive found." + fi + + - name: Validate patch apply in dry-run mode + run: | + set -euo pipefail + { + echo "# Apply Benchmark Patch Dry-Run Report" + echo + echo "- Ref: \`${{ github.event.inputs.ref }}\`" + echo "- PR: \`${{ github.event.inputs.pr_number }}\`" + echo + } > apply-benchmark-patch-dryrun-report.md + + if [ ! -f ".bench_patch/benchmark_patch.diff" ]; then + echo "No benchmark_patch.diff found; nothing to validate." >> apply-benchmark-patch-dryrun-report.md + cat apply-benchmark-patch-dryrun-report.md + exit 0 + fi + + if git apply --check ".bench_patch/benchmark_patch.diff"; then + echo "Patch check succeeded." >> apply-benchmark-patch-dryrun-report.md + git apply --index --3way ".bench_patch/benchmark_patch.diff" + echo >> apply-benchmark-patch-dryrun-report.md + echo "## Diff stat" >> apply-benchmark-patch-dryrun-report.md + git diff --cached --stat >> apply-benchmark-patch-dryrun-report.md + else + echo "Patch check failed." >> apply-benchmark-patch-dryrun-report.md + cat apply-benchmark-patch-dryrun-report.md + exit 1 + fi + + cat apply-benchmark-patch-dryrun-report.md + + - name: Upload dry-run artifacts + if: always() + uses: actions/upload-artifact@v4 + with: + name: apply-benchmark-patch-dryrun + path: | + apply-benchmark-patch-dryrun-report.md + .bench_patch/benchmark_patch.diff + if-no-files-found: warn diff --git a/.github/workflows/test-fireactions-docker-dryrun.yml b/.github/workflows/test-fireactions-docker-dryrun.yml new file mode 100644 index 0000000000..ce449ee530 --- /dev/null +++ b/.github/workflows/test-fireactions-docker-dryrun.yml @@ -0,0 +1,61 @@ +name: Test Fireactions Docker Dry-Run + +on: + workflow_dispatch: + inputs: + ref: + description: "Branch or tag to validate" + required: true + default: "fireactions-runners" + dry_run: + description: "Must remain true for this test workflow" + required: true + default: "true" + +permissions: + contents: read + packages: read + +concurrency: + group: test-fireactions-docker-dryrun-${{ github.ref }} + cancel-in-progress: true + +jobs: + publish-dryrun: + runs-on: [self-hosted, fireactions] + timeout-minutes: 45 + steps: + - name: Enforce dry-run mode + run: | + if [ "${{ github.event.inputs.dry_run }}" != "true" ]; then + echo "dry_run must be true for this workflow." + exit 1 + fi + + - name: Checkout target ref + uses: actions/checkout@v4 + with: + ref: ${{ github.event.inputs.ref }} + + - name: Dependency gate (no installs) + run: | + set -euo pipefail + for cmd in docker git; do + command -v "$cmd" + done + docker version + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build Docker image (dry-run, no push) + uses: docker/build-push-action@v6 + with: + context: . + push: false + load: false + platforms: linux/amd64,linux/arm64 + tags: ghcr.io/${{ github.repository }}:dryrun-${{ github.run_id }} diff --git a/.github/workflows/test-fireactions-docker-localnet-dryrun.yml b/.github/workflows/test-fireactions-docker-localnet-dryrun.yml new file mode 100644 index 0000000000..02d7ee4a59 --- /dev/null +++ b/.github/workflows/test-fireactions-docker-localnet-dryrun.yml @@ -0,0 +1,149 @@ +name: Test Fireactions Docker Localnet Dry-Run + +on: + workflow_dispatch: + inputs: + ref: + description: "Branch or tag to validate" + required: true + default: "fireactions-runners" + dry_run: + description: "Must remain true for this test workflow" + required: true + default: "true" + +permissions: + contents: read + actions: read + packages: read + +concurrency: + group: test-fireactions-docker-localnet-dryrun-${{ github.ref }} + cancel-in-progress: true + +jobs: + setup: + runs-on: [self-hosted, fireactions] + outputs: + ref: ${{ steps.vars.outputs.ref }} + tag: ${{ steps.vars.outputs.tag }} + steps: + - name: Enforce dry-run mode + run: | + if [ "${{ github.event.inputs.dry_run }}" != "true" ]; then + echo "dry_run must be true for this workflow." + exit 1 + fi + + - name: Determine ref and tag + id: vars + run: | + echo "ref=${{ github.event.inputs.ref }}" >> "$GITHUB_OUTPUT" + echo "tag=dryrun-${{ github.run_id }}" >> "$GITHUB_OUTPUT" + + artifacts: + name: Node • ${{ matrix.runtime }} • amd64 + needs: setup + strategy: + fail-fast: false + matrix: + runtime: ["fast-runtime", "non-fast-runtime"] + runs-on: [self-hosted, fireactions] + timeout-minutes: 120 + steps: + - name: Checkout target ref + uses: actions/checkout@v4 + with: + ref: ${{ needs.setup.outputs.ref }} + + - name: Dependency gate (no installs) + run: | + set -euo pipefail + for cmd in docker rustup cargo clang pkg-config protoc gcc-aarch64-linux-gnu gcc-x86-64-linux-gnu; do + command -v "$cmd" + done + pkg-config --exists openssl + pkg-config --exists libudev + + - name: Install Rust toolchain (run-specific) + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: 1.88.0 + + - name: Add Rust target triple + run: rustup target add x86_64-unknown-linux-gnu + + - name: Patch limits for local run + run: | + chmod +x ./scripts/localnet_patch.sh + ./scripts/localnet_patch.sh + + - name: Build binaries + run: | + export PATH="$HOME/.cargo/bin:$PATH" + export CARGO_BUILD_TARGET="x86_64-unknown-linux-gnu" + if [ "${{ matrix.runtime }}" = "fast-runtime" ]; then + ./scripts/localnet.sh --build-only + else + ./scripts/localnet.sh False --build-only + fi + + - name: Prepare artifacts for upload + run: | + RUNTIME="${{ matrix.runtime }}" + TRIPLE="x86_64-unknown-linux-gnu" + mkdir -p build/ci_target/${RUNTIME}/${TRIPLE}/release/ + cp -v target/${RUNTIME}/${TRIPLE}/release/node-subtensor \ + build/ci_target/${RUNTIME}/${TRIPLE}/release/ + mkdir -p build/ci_target/${RUNTIME}/${TRIPLE}/release/wbuild/node-subtensor-runtime/ + cp -v target/${RUNTIME}/${TRIPLE}/release/wbuild/node-subtensor-runtime/node_subtensor_runtime.compact.compressed.wasm \ + build/ci_target/${RUNTIME}/${TRIPLE}/release/wbuild/node-subtensor-runtime/ + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: dryrun-binaries-x86_64-unknown-linux-gnu-${{ matrix.runtime }} + path: build/ + if-no-files-found: error + + docker: + needs: [setup, artifacts] + runs-on: [self-hosted, fireactions] + timeout-minutes: 90 + steps: + - name: Checkout target ref + uses: actions/checkout@v4 + with: + ref: ${{ needs.setup.outputs.ref }} + + - name: Download all binary artifacts + uses: actions/download-artifact@v5 + with: + pattern: dryrun-binaries-* + path: build/ + merge-multiple: true + + - name: Dependency gate (no installs) + run: | + set -euo pipefail + command -v docker + docker version + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build Docker image (dry-run, no push) + uses: docker/build-push-action@v6 + with: + context: . + file: Dockerfile-localnet + build-args: | + BUILT_IN_CI="Boom shakalaka" + push: false + load: false + platforms: linux/amd64 + tags: ghcr.io/${{ github.repository }}-localnet:${{ needs.setup.outputs.tag }} diff --git a/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml b/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml new file mode 100644 index 0000000000..807071bc93 --- /dev/null +++ b/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml @@ -0,0 +1,109 @@ +name: Test Fireactions Hotfixes and Labels Dry-Run + +on: + workflow_dispatch: + inputs: + ref: + description: "Branch or tag to validate" + required: true + default: "fireactions-runners" + dry_run: + description: "Must remain true for this test workflow" + required: true + default: "true" + pr_number: + description: "PR number for payload rendering" + required: true + default: "1" + base_ref: + description: "Simulated PR base branch" + required: true + default: "main" + head_ref: + description: "Simulated PR head branch" + required: true + default: "feature/fireactions-test" + label_name: + description: "Simulated label name" + required: true + default: "breaking-change" + +permissions: + contents: read + +concurrency: + group: test-fireactions-hotfixes-labels-dryrun-${{ github.ref }} + cancel-in-progress: true + +jobs: + payload-dryrun: + runs-on: [self-hosted, fireactions] + timeout-minutes: 20 + steps: + - name: Enforce dry-run mode + run: | + if [ "${{ github.event.inputs.dry_run }}" != "true" ]; then + echo "dry_run must be true for this workflow." + exit 1 + fi + + - name: Checkout target ref + uses: actions/checkout@v4 + with: + ref: ${{ github.event.inputs.ref }} + + - name: Dependency gate (no installs) + run: | + set -euo pipefail + for cmd in curl jq; do + command -v "$cmd" + done + + - name: Render and validate payloads (no API writes) + run: | + set -euo pipefail + REPORT="hotfixes-labels-dryrun-report.md" + { + echo "# Hotfixes + Labels Dry-Run Report" + echo + echo "- Ref: \`${{ github.event.inputs.ref }}\`" + echo "- PR: \`${{ github.event.inputs.pr_number }}\`" + echo "- base_ref: \`${{ github.event.inputs.base_ref }}\`" + echo "- head_ref: \`${{ github.event.inputs.head_ref }}\`" + echo "- label_name: \`${{ github.event.inputs.label_name }}\`" + echo + } > "$REPORT" + + if [ "${{ github.event.inputs.base_ref }}" = "main" ] && [ "${{ github.event.inputs.head_ref }}" != "testnet" ]; then + HOTFIX_LABEL_PAYLOAD='{"labels":["hotfix"]}' + echo "$HOTFIX_LABEL_PAYLOAD" | jq -e '.labels | index("hotfix")' >/dev/null + echo "## Hotfix payload" >> "$REPORT" + echo '```json' >> "$REPORT" + echo "$HOTFIX_LABEL_PAYLOAD" | jq >> "$REPORT" + echo '```' >> "$REPORT" + else + echo "Hotfix condition not met; label/comment payload generation skipped." >> "$REPORT" + fi + + if [ "${{ github.event.inputs.label_name }}" = "breaking-change" ]; then + BREAKING_BODY='@opentensor/cerebrum / @opentensor/gyrus / @opentensor/cortex breaking change detected! Please prepare accordingly!' + BREAKING_PAYLOAD="$(jq -n --arg body "$BREAKING_BODY" '{body: $body}')" + echo "$BREAKING_PAYLOAD" | jq -e '.body | length > 0' >/dev/null + echo >> "$REPORT" + echo "## Breaking-change comment payload" >> "$REPORT" + echo '```json' >> "$REPORT" + echo "$BREAKING_PAYLOAD" | jq >> "$REPORT" + echo '```' >> "$REPORT" + else + echo "breaking-change label condition not met; payload generation skipped." >> "$REPORT" + fi + + cat "$REPORT" + + - name: Upload dry-run report + if: always() + uses: actions/upload-artifact@v4 + with: + name: hotfixes-labels-dryrun + path: hotfixes-labels-dryrun-report.md + if-no-files-found: error diff --git a/.github/workflows/test-fireactions-noinstall-probes.yml b/.github/workflows/test-fireactions-noinstall-probes.yml new file mode 100644 index 0000000000..a6289c599a --- /dev/null +++ b/.github/workflows/test-fireactions-noinstall-probes.yml @@ -0,0 +1,136 @@ +name: Test Fireactions No-Install Probes + +on: + workflow_dispatch: + inputs: + ref: + description: "Branch or tag to validate" + required: true + default: "fireactions-runners" + dry_run: + description: "Must remain true for this test workflow" + required: true + default: "true" + +concurrency: + group: test-fireactions-noinstall-probes-${{ github.ref }} + cancel-in-progress: true + +jobs: + probes: + runs-on: [self-hosted, fireactions] + timeout-minutes: 20 + steps: + - name: Enforce dry-run mode + run: | + if [ "${{ github.event.inputs.dry_run }}" != "true" ]; then + echo "dry_run must be true for this workflow." + exit 1 + fi + + - name: Checkout target ref + uses: actions/checkout@v4 + with: + ref: ${{ github.event.inputs.ref }} + + - name: Probe runner dependencies (no installs) + run: | + set +e + MISSING=0 + REPORT="$GITHUB_WORKSPACE/noinstall-probes-report.md" + { + echo "# Fireactions No-Install Probe Report" + echo + echo "- Ref: \`${{ github.event.inputs.ref }}\`" + echo "- Runner: \`self-hosted, fireactions\`" + echo + echo "## Command Checks" + } > "$REPORT" + + check_cmd() { + if command -v "$1" >/dev/null 2>&1; then + echo "- [x] $1" >> "$REPORT" + else + echo "- [ ] $1 (missing)" >> "$REPORT" + MISSING=$((MISSING + 1)) + fi + } + + check_cmd docker + check_cmd gh + check_cmd jq + check_cmd git + check_cmd curl + check_cmd unzip + check_cmd bc + check_cmd make + check_cmd clang + check_cmd pkg-config + check_cmd protoc + check_cmd llvm-config + check_cmd gcc-aarch64-linux-gnu + check_cmd gcc-x86-64-linux-gnu + check_cmd node + check_cmd npm + + { + echo + echo "## Functional Checks" + } >> "$REPORT" + + if docker buildx version >/dev/null 2>&1; then + echo "- [x] docker buildx plugin" >> "$REPORT" + else + echo "- [ ] docker buildx plugin (missing)" >> "$REPORT" + MISSING=$((MISSING + 1)) + fi + + if docker compose version >/dev/null 2>&1; then + echo "- [x] docker compose plugin" >> "$REPORT" + else + echo "- [ ] docker compose plugin (missing)" >> "$REPORT" + MISSING=$((MISSING + 1)) + fi + + if pkg-config --exists openssl; then + echo "- [x] pkg-config openssl" >> "$REPORT" + else + echo "- [ ] pkg-config openssl (missing)" >> "$REPORT" + MISSING=$((MISSING + 1)) + fi + + if pkg-config --exists libudev; then + echo "- [x] pkg-config libudev" >> "$REPORT" + else + echo "- [ ] pkg-config libudev (missing)" >> "$REPORT" + MISSING=$((MISSING + 1)) + fi + + if [ -f /etc/ssl/certs/ca-certificates.crt ]; then + echo "- [x] ca-certificates bundle" >> "$REPORT" + else + echo "- [ ] ca-certificates bundle (missing)" >> "$REPORT" + MISSING=$((MISSING + 1)) + fi + + { + echo + echo "## Result" + echo + echo "- Missing checks: $MISSING" + } >> "$REPORT" + + cat "$REPORT" + + if [ "$MISSING" -gt 0 ]; then + echo "Dependency probe failed with $MISSING missing checks." + exit 1 + fi + + - name: Upload probe report + if: always() + uses: actions/upload-artifact@v4 + with: + name: fireactions-noinstall-probes-report + path: noinstall-probes-report.md + if-no-files-found: error diff --git a/.github/workflows/test-fireactions-rustdocs-dryrun.yml b/.github/workflows/test-fireactions-rustdocs-dryrun.yml new file mode 100644 index 0000000000..2d52837579 --- /dev/null +++ b/.github/workflows/test-fireactions-rustdocs-dryrun.yml @@ -0,0 +1,68 @@ +name: Test Fireactions Rustdocs Dry-Run + +on: + workflow_dispatch: + inputs: + ref: + description: "Branch or tag to validate" + required: true + default: "fireactions-runners" + dry_run: + description: "Must remain true for this test workflow" + required: true + default: "true" + +permissions: + contents: read + +concurrency: + group: test-fireactions-rustdocs-dryrun-${{ github.ref }} + cancel-in-progress: true + +jobs: + build-docs-dryrun: + runs-on: [self-hosted, fireactions] + timeout-minutes: 90 + steps: + - name: Enforce dry-run mode + run: | + if [ "${{ github.event.inputs.dry_run }}" != "true" ]; then + echo "dry_run must be true for this workflow." + exit 1 + fi + + - name: Checkout target ref + uses: actions/checkout@v4 + with: + ref: ${{ github.event.inputs.ref }} + + - name: Dependency gate (no installs) + run: | + set -euo pipefail + for cmd in clang curl pkg-config llvm-config protoc; do + command -v "$cmd" + done + pkg-config --exists openssl + pkg-config --exists libudev + + - name: Install Rust toolchain (run-specific) + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + + - name: Generate documentation + uses: actions-rs/cargo@v1 + with: + command: doc + args: --document-private-items + + - name: Generate index.html + run: | + echo "" > target/doc/index.html + + - name: Upload documentation artifact + uses: actions/upload-artifact@v4 + with: + name: rustdocs-dryrun + path: target/doc + if-no-files-found: error diff --git a/.github/workflows/test-fireactions-update-chainspec-dryrun.yml b/.github/workflows/test-fireactions-update-chainspec-dryrun.yml new file mode 100644 index 0000000000..6d610a7115 --- /dev/null +++ b/.github/workflows/test-fireactions-update-chainspec-dryrun.yml @@ -0,0 +1,91 @@ +name: Test Fireactions Update Chainspec Dry-Run + +on: + workflow_dispatch: + inputs: + ref: + description: "Branch or tag to validate" + required: true + default: "fireactions-runners" + dry_run: + description: "Must remain true for this test workflow" + required: true + default: "true" + +permissions: + contents: read + +concurrency: + group: test-fireactions-update-chainspec-dryrun-${{ github.ref }} + cancel-in-progress: true + +jobs: + update-chainspecs-dryrun: + runs-on: [self-hosted, fireactions] + timeout-minutes: 120 + env: + CARGO_TERM_COLOR: always + RUST_BACKTRACE: full + steps: + - name: Enforce dry-run mode + run: | + if [ "${{ github.event.inputs.dry_run }}" != "true" ]; then + echo "dry_run must be true for this workflow." + exit 1 + fi + + - name: Checkout target ref + uses: actions/checkout@v4 + with: + ref: ${{ github.event.inputs.ref }} + + - name: Dependency gate (no installs) + run: | + set -euo pipefail + for cmd in clang curl pkg-config llvm-config protoc git; do + command -v "$cmd" + done + pkg-config --exists openssl + pkg-config --exists libudev + + - name: Install Rust toolchain (run-specific) + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + + - name: Utilize Rust cache + uses: Swatinem/rust-cache@v2 + + - name: Build chainspecs + run: ./scripts/build_all_chainspecs.sh + + - name: Generate dry-run diff report + run: | + { + echo "# Update Chainspec Dry-Run Report" + echo + echo "- Ref: \`${{ github.event.inputs.ref }}\`" + echo + if git diff --quiet; then + echo "No changes detected." + else + echo "Changes detected." + echo + echo "## Changed files" + git diff --name-only | sed 's/^/- /' + echo + echo "## Diff stat" + git diff --stat + fi + } > chainspecs-dryrun-report.md + + git diff > chainspecs-dryrun.patch || true + + - name: Upload dry-run artifacts + uses: actions/upload-artifact@v4 + with: + name: chainspecs-dryrun + path: | + chainspecs-dryrun-report.md + chainspecs-dryrun.patch + if-no-files-found: warn From 533ef36a1be54805ae0ec2b3684615848fe24f8c Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Wed, 4 Mar 2026 13:52:50 +0100 Subject: [PATCH 03/62] Clarify fireactions smoke inputs --- .github/workflows/fireactions-smoke.yml | 31 ++++++ ...reactions-apply-benchmark-patch-dryrun.yml | 26 +++-- .../test-fireactions-docker-dryrun.yml | 14 ++- ...est-fireactions-docker-localnet-dryrun.yml | 14 ++- ...est-fireactions-hotfixes-labels-dryrun.yml | 44 ++++++-- .../test-fireactions-noinstall-probes.yml | 16 ++- .../test-fireactions-rustdocs-dryrun.yml | 14 ++- ...st-fireactions-update-chainspec-dryrun.yml | 16 ++- .../test-fireactions-validation-suite.yml | 101 ++++++++++++++++++ 9 files changed, 249 insertions(+), 27 deletions(-) create mode 100644 .github/workflows/test-fireactions-validation-suite.yml diff --git a/.github/workflows/fireactions-smoke.yml b/.github/workflows/fireactions-smoke.yml index 0d181c5a54..4cf2d0afa9 100644 --- a/.github/workflows/fireactions-smoke.yml +++ b/.github/workflows/fireactions-smoke.yml @@ -2,6 +2,25 @@ name: Fireactions Smoke on: workflow_dispatch: + inputs: + ref: + description: "Branch or tag to validate" + required: true + default: "fireactions-runners" + dry_run: + description: "Must remain true for this validation workflow" + required: true + default: "true" + workflow_call: + inputs: + ref: + required: false + type: string + default: "fireactions-runners" + dry_run: + required: false + type: string + default: "true" concurrency: group: fireactions-smoke-${{ github.ref }} @@ -12,6 +31,18 @@ jobs: runs-on: [self-hosted, fireactions] timeout-minutes: 30 steps: + - name: Enforce dry-run mode + run: | + if [ "${{ inputs.dry_run }}" != "true" ]; then + echo "dry_run must be true for this workflow." + exit 1 + fi + + - name: Checkout target ref + uses: actions/checkout@v4 + with: + ref: ${{ inputs.ref }} + - name: Enforce no-install campaign mode run: | echo "No system package installs are allowed in this validation campaign." diff --git a/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml b/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml index 94bed6560b..d407610cf4 100644 --- a/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml +++ b/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml @@ -15,6 +15,20 @@ on: description: "PR number to fetch benchmark artifact from (optional)" required: false default: "" + workflow_call: + inputs: + ref: + required: false + type: string + default: "fireactions-runners" + dry_run: + required: false + type: string + default: "true" + pr_number: + required: false + type: string + default: "" permissions: contents: read @@ -32,7 +46,7 @@ jobs: steps: - name: Enforce dry-run mode run: | - if [ "${{ github.event.inputs.dry_run }}" != "true" ]; then + if [ "${{ inputs.dry_run }}" != "true" ]; then echo "dry_run must be true for this workflow." exit 1 fi @@ -40,7 +54,7 @@ jobs: - name: Checkout target ref uses: actions/checkout@v4 with: - ref: ${{ github.event.inputs.ref }} + ref: ${{ inputs.ref }} - name: Dependency gate (no installs) run: | @@ -50,11 +64,11 @@ jobs: done - name: Download latest bench patch artifact from benchmark workflow - if: ${{ github.event.inputs.pr_number != '' }} + if: ${{ inputs.pr_number != '' }} uses: dawidd6/action-download-artifact@v3 with: workflow: run-benchmarks.yml - pr: ${{ github.event.inputs.pr_number }} + pr: ${{ inputs.pr_number }} name: bench-patch path: . allow_forks: true @@ -80,8 +94,8 @@ jobs: { echo "# Apply Benchmark Patch Dry-Run Report" echo - echo "- Ref: \`${{ github.event.inputs.ref }}\`" - echo "- PR: \`${{ github.event.inputs.pr_number }}\`" + echo "- Ref: \`${{ inputs.ref }}\`" + echo "- PR: \`${{ inputs.pr_number }}\`" echo } > apply-benchmark-patch-dryrun-report.md diff --git a/.github/workflows/test-fireactions-docker-dryrun.yml b/.github/workflows/test-fireactions-docker-dryrun.yml index ce449ee530..1c8a76631a 100644 --- a/.github/workflows/test-fireactions-docker-dryrun.yml +++ b/.github/workflows/test-fireactions-docker-dryrun.yml @@ -11,6 +11,16 @@ on: description: "Must remain true for this test workflow" required: true default: "true" + workflow_call: + inputs: + ref: + required: false + type: string + default: "fireactions-runners" + dry_run: + required: false + type: string + default: "true" permissions: contents: read @@ -27,7 +37,7 @@ jobs: steps: - name: Enforce dry-run mode run: | - if [ "${{ github.event.inputs.dry_run }}" != "true" ]; then + if [ "${{ inputs.dry_run }}" != "true" ]; then echo "dry_run must be true for this workflow." exit 1 fi @@ -35,7 +45,7 @@ jobs: - name: Checkout target ref uses: actions/checkout@v4 with: - ref: ${{ github.event.inputs.ref }} + ref: ${{ inputs.ref }} - name: Dependency gate (no installs) run: | diff --git a/.github/workflows/test-fireactions-docker-localnet-dryrun.yml b/.github/workflows/test-fireactions-docker-localnet-dryrun.yml index 02d7ee4a59..2203587ac4 100644 --- a/.github/workflows/test-fireactions-docker-localnet-dryrun.yml +++ b/.github/workflows/test-fireactions-docker-localnet-dryrun.yml @@ -11,6 +11,16 @@ on: description: "Must remain true for this test workflow" required: true default: "true" + workflow_call: + inputs: + ref: + required: false + type: string + default: "fireactions-runners" + dry_run: + required: false + type: string + default: "true" permissions: contents: read @@ -30,7 +40,7 @@ jobs: steps: - name: Enforce dry-run mode run: | - if [ "${{ github.event.inputs.dry_run }}" != "true" ]; then + if [ "${{ inputs.dry_run }}" != "true" ]; then echo "dry_run must be true for this workflow." exit 1 fi @@ -38,7 +48,7 @@ jobs: - name: Determine ref and tag id: vars run: | - echo "ref=${{ github.event.inputs.ref }}" >> "$GITHUB_OUTPUT" + echo "ref=${{ inputs.ref }}" >> "$GITHUB_OUTPUT" echo "tag=dryrun-${{ github.run_id }}" >> "$GITHUB_OUTPUT" artifacts: diff --git a/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml b/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml index 807071bc93..82db50af88 100644 --- a/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml +++ b/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml @@ -27,6 +27,32 @@ on: description: "Simulated label name" required: true default: "breaking-change" + workflow_call: + inputs: + ref: + required: false + type: string + default: "fireactions-runners" + dry_run: + required: false + type: string + default: "true" + pr_number: + required: false + type: string + default: "1" + base_ref: + required: false + type: string + default: "main" + head_ref: + required: false + type: string + default: "feature/fireactions-test" + label_name: + required: false + type: string + default: "breaking-change" permissions: contents: read @@ -42,7 +68,7 @@ jobs: steps: - name: Enforce dry-run mode run: | - if [ "${{ github.event.inputs.dry_run }}" != "true" ]; then + if [ "${{ inputs.dry_run }}" != "true" ]; then echo "dry_run must be true for this workflow." exit 1 fi @@ -50,7 +76,7 @@ jobs: - name: Checkout target ref uses: actions/checkout@v4 with: - ref: ${{ github.event.inputs.ref }} + ref: ${{ inputs.ref }} - name: Dependency gate (no installs) run: | @@ -66,15 +92,15 @@ jobs: { echo "# Hotfixes + Labels Dry-Run Report" echo - echo "- Ref: \`${{ github.event.inputs.ref }}\`" - echo "- PR: \`${{ github.event.inputs.pr_number }}\`" - echo "- base_ref: \`${{ github.event.inputs.base_ref }}\`" - echo "- head_ref: \`${{ github.event.inputs.head_ref }}\`" - echo "- label_name: \`${{ github.event.inputs.label_name }}\`" + echo "- Ref: \`${{ inputs.ref }}\`" + echo "- PR: \`${{ inputs.pr_number }}\`" + echo "- base_ref: \`${{ inputs.base_ref }}\`" + echo "- head_ref: \`${{ inputs.head_ref }}\`" + echo "- label_name: \`${{ inputs.label_name }}\`" echo } > "$REPORT" - if [ "${{ github.event.inputs.base_ref }}" = "main" ] && [ "${{ github.event.inputs.head_ref }}" != "testnet" ]; then + if [ "${{ inputs.base_ref }}" = "main" ] && [ "${{ inputs.head_ref }}" != "testnet" ]; then HOTFIX_LABEL_PAYLOAD='{"labels":["hotfix"]}' echo "$HOTFIX_LABEL_PAYLOAD" | jq -e '.labels | index("hotfix")' >/dev/null echo "## Hotfix payload" >> "$REPORT" @@ -85,7 +111,7 @@ jobs: echo "Hotfix condition not met; label/comment payload generation skipped." >> "$REPORT" fi - if [ "${{ github.event.inputs.label_name }}" = "breaking-change" ]; then + if [ "${{ inputs.label_name }}" = "breaking-change" ]; then BREAKING_BODY='@opentensor/cerebrum / @opentensor/gyrus / @opentensor/cortex breaking change detected! Please prepare accordingly!' BREAKING_PAYLOAD="$(jq -n --arg body "$BREAKING_BODY" '{body: $body}')" echo "$BREAKING_PAYLOAD" | jq -e '.body | length > 0' >/dev/null diff --git a/.github/workflows/test-fireactions-noinstall-probes.yml b/.github/workflows/test-fireactions-noinstall-probes.yml index a6289c599a..73b49b99ab 100644 --- a/.github/workflows/test-fireactions-noinstall-probes.yml +++ b/.github/workflows/test-fireactions-noinstall-probes.yml @@ -11,6 +11,16 @@ on: description: "Must remain true for this test workflow" required: true default: "true" + workflow_call: + inputs: + ref: + required: false + type: string + default: "fireactions-runners" + dry_run: + required: false + type: string + default: "true" concurrency: group: test-fireactions-noinstall-probes-${{ github.ref }} @@ -23,7 +33,7 @@ jobs: steps: - name: Enforce dry-run mode run: | - if [ "${{ github.event.inputs.dry_run }}" != "true" ]; then + if [ "${{ inputs.dry_run }}" != "true" ]; then echo "dry_run must be true for this workflow." exit 1 fi @@ -31,7 +41,7 @@ jobs: - name: Checkout target ref uses: actions/checkout@v4 with: - ref: ${{ github.event.inputs.ref }} + ref: ${{ inputs.ref }} - name: Probe runner dependencies (no installs) run: | @@ -41,7 +51,7 @@ jobs: { echo "# Fireactions No-Install Probe Report" echo - echo "- Ref: \`${{ github.event.inputs.ref }}\`" + echo "- Ref: \`${{ inputs.ref }}\`" echo "- Runner: \`self-hosted, fireactions\`" echo echo "## Command Checks" diff --git a/.github/workflows/test-fireactions-rustdocs-dryrun.yml b/.github/workflows/test-fireactions-rustdocs-dryrun.yml index 2d52837579..416e882124 100644 --- a/.github/workflows/test-fireactions-rustdocs-dryrun.yml +++ b/.github/workflows/test-fireactions-rustdocs-dryrun.yml @@ -11,6 +11,16 @@ on: description: "Must remain true for this test workflow" required: true default: "true" + workflow_call: + inputs: + ref: + required: false + type: string + default: "fireactions-runners" + dry_run: + required: false + type: string + default: "true" permissions: contents: read @@ -26,7 +36,7 @@ jobs: steps: - name: Enforce dry-run mode run: | - if [ "${{ github.event.inputs.dry_run }}" != "true" ]; then + if [ "${{ inputs.dry_run }}" != "true" ]; then echo "dry_run must be true for this workflow." exit 1 fi @@ -34,7 +44,7 @@ jobs: - name: Checkout target ref uses: actions/checkout@v4 with: - ref: ${{ github.event.inputs.ref }} + ref: ${{ inputs.ref }} - name: Dependency gate (no installs) run: | diff --git a/.github/workflows/test-fireactions-update-chainspec-dryrun.yml b/.github/workflows/test-fireactions-update-chainspec-dryrun.yml index 6d610a7115..bcdf4a52bc 100644 --- a/.github/workflows/test-fireactions-update-chainspec-dryrun.yml +++ b/.github/workflows/test-fireactions-update-chainspec-dryrun.yml @@ -11,6 +11,16 @@ on: description: "Must remain true for this test workflow" required: true default: "true" + workflow_call: + inputs: + ref: + required: false + type: string + default: "fireactions-runners" + dry_run: + required: false + type: string + default: "true" permissions: contents: read @@ -29,7 +39,7 @@ jobs: steps: - name: Enforce dry-run mode run: | - if [ "${{ github.event.inputs.dry_run }}" != "true" ]; then + if [ "${{ inputs.dry_run }}" != "true" ]; then echo "dry_run must be true for this workflow." exit 1 fi @@ -37,7 +47,7 @@ jobs: - name: Checkout target ref uses: actions/checkout@v4 with: - ref: ${{ github.event.inputs.ref }} + ref: ${{ inputs.ref }} - name: Dependency gate (no installs) run: | @@ -64,7 +74,7 @@ jobs: { echo "# Update Chainspec Dry-Run Report" echo - echo "- Ref: \`${{ github.event.inputs.ref }}\`" + echo "- Ref: \`${{ inputs.ref }}\`" echo if git diff --quiet; then echo "No changes detected." diff --git a/.github/workflows/test-fireactions-validation-suite.yml b/.github/workflows/test-fireactions-validation-suite.yml new file mode 100644 index 0000000000..cfa5cdb8c9 --- /dev/null +++ b/.github/workflows/test-fireactions-validation-suite.yml @@ -0,0 +1,101 @@ +name: Test Fireactions Validation Suite + +on: + workflow_dispatch: + inputs: + ref: + description: "Branch or tag to validate" + required: true + default: "fireactions-runners" + dry_run: + description: "Must remain true for this validation workflow" + required: true + default: "true" + pr_number: + description: "Optional PR number for benchmark patch artifact fetch" + required: false + default: "" + base_ref: + description: "Simulated PR base branch for hotfix/label payload tests" + required: false + default: "main" + head_ref: + description: "Simulated PR head branch for hotfix/label payload tests" + required: false + default: "feature/fireactions-test" + label_name: + description: "Simulated label name for label payload tests" + required: false + default: "breaking-change" + +permissions: + contents: read + actions: read + pull-requests: read + packages: read + +concurrency: + group: test-fireactions-validation-suite-${{ github.ref }} + cancel-in-progress: true + +jobs: + smoke: + uses: ./.github/workflows/fireactions-smoke.yml + with: + ref: ${{ inputs.ref }} + dry_run: ${{ inputs.dry_run }} + secrets: inherit + + noinstall-probes: + uses: ./.github/workflows/test-fireactions-noinstall-probes.yml + with: + ref: ${{ inputs.ref }} + dry_run: ${{ inputs.dry_run }} + secrets: inherit + + docker-dryrun: + uses: ./.github/workflows/test-fireactions-docker-dryrun.yml + with: + ref: ${{ inputs.ref }} + dry_run: ${{ inputs.dry_run }} + secrets: inherit + + docker-localnet-dryrun: + uses: ./.github/workflows/test-fireactions-docker-localnet-dryrun.yml + with: + ref: ${{ inputs.ref }} + dry_run: ${{ inputs.dry_run }} + secrets: inherit + + rustdocs-dryrun: + uses: ./.github/workflows/test-fireactions-rustdocs-dryrun.yml + with: + ref: ${{ inputs.ref }} + dry_run: ${{ inputs.dry_run }} + secrets: inherit + + update-chainspec-dryrun: + uses: ./.github/workflows/test-fireactions-update-chainspec-dryrun.yml + with: + ref: ${{ inputs.ref }} + dry_run: ${{ inputs.dry_run }} + secrets: inherit + + apply-benchmark-patch-dryrun: + uses: ./.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml + with: + ref: ${{ inputs.ref }} + dry_run: ${{ inputs.dry_run }} + pr_number: ${{ inputs.pr_number }} + secrets: inherit + + hotfixes-labels-dryrun: + uses: ./.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml + with: + ref: ${{ inputs.ref }} + dry_run: ${{ inputs.dry_run }} + pr_number: ${{ inputs.pr_number != '' && inputs.pr_number || '1' }} + base_ref: ${{ inputs.base_ref }} + head_ref: ${{ inputs.head_ref }} + label_name: ${{ inputs.label_name }} + secrets: inherit From 64afce1e167426c733bdca762c2b5a930ac888de Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Wed, 4 Mar 2026 14:47:56 +0100 Subject: [PATCH 04/62] Add Fireactions dry-run workflows --- .../test-fireactions-validation-suite.yml | 52 +++++++++++-------- 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/.github/workflows/test-fireactions-validation-suite.yml b/.github/workflows/test-fireactions-validation-suite.yml index cfa5cdb8c9..419b2d50ff 100644 --- a/.github/workflows/test-fireactions-validation-suite.yml +++ b/.github/workflows/test-fireactions-validation-suite.yml @@ -1,6 +1,8 @@ name: Test Fireactions Validation Suite on: + pull_request: + types: [opened, synchronize, reopened] workflow_dispatch: inputs: ref: @@ -40,62 +42,70 @@ concurrency: jobs: smoke: + if: ${{ github.event_name != 'pull_request' || github.head_ref == 'fireactions-runners' }} uses: ./.github/workflows/fireactions-smoke.yml with: - ref: ${{ inputs.ref }} - dry_run: ${{ inputs.dry_run }} + ref: ${{ github.event_name == 'pull_request' && github.head_ref || inputs.ref }} + dry_run: ${{ github.event_name == 'pull_request' && 'true' || inputs.dry_run }} secrets: inherit noinstall-probes: + if: ${{ github.event_name != 'pull_request' || github.head_ref == 'fireactions-runners' }} uses: ./.github/workflows/test-fireactions-noinstall-probes.yml with: - ref: ${{ inputs.ref }} - dry_run: ${{ inputs.dry_run }} + ref: ${{ github.event_name == 'pull_request' && github.head_ref || inputs.ref }} + dry_run: ${{ github.event_name == 'pull_request' && 'true' || inputs.dry_run }} secrets: inherit docker-dryrun: + if: ${{ github.event_name != 'pull_request' || github.head_ref == 'fireactions-runners' }} uses: ./.github/workflows/test-fireactions-docker-dryrun.yml with: - ref: ${{ inputs.ref }} - dry_run: ${{ inputs.dry_run }} + ref: ${{ github.event_name == 'pull_request' && github.head_ref || inputs.ref }} + dry_run: ${{ github.event_name == 'pull_request' && 'true' || inputs.dry_run }} secrets: inherit docker-localnet-dryrun: + if: ${{ github.event_name != 'pull_request' || github.head_ref == 'fireactions-runners' }} uses: ./.github/workflows/test-fireactions-docker-localnet-dryrun.yml with: - ref: ${{ inputs.ref }} - dry_run: ${{ inputs.dry_run }} + ref: ${{ github.event_name == 'pull_request' && github.head_ref || inputs.ref }} + dry_run: ${{ github.event_name == 'pull_request' && 'true' || inputs.dry_run }} secrets: inherit rustdocs-dryrun: + if: ${{ github.event_name != 'pull_request' || github.head_ref == 'fireactions-runners' }} uses: ./.github/workflows/test-fireactions-rustdocs-dryrun.yml with: - ref: ${{ inputs.ref }} - dry_run: ${{ inputs.dry_run }} + ref: ${{ github.event_name == 'pull_request' && github.head_ref || inputs.ref }} + dry_run: ${{ github.event_name == 'pull_request' && 'true' || inputs.dry_run }} secrets: inherit update-chainspec-dryrun: + if: ${{ github.event_name != 'pull_request' || github.head_ref == 'fireactions-runners' }} uses: ./.github/workflows/test-fireactions-update-chainspec-dryrun.yml with: - ref: ${{ inputs.ref }} - dry_run: ${{ inputs.dry_run }} + ref: ${{ github.event_name == 'pull_request' && github.head_ref || inputs.ref }} + dry_run: ${{ github.event_name == 'pull_request' && 'true' || inputs.dry_run }} secrets: inherit apply-benchmark-patch-dryrun: + if: ${{ github.event_name != 'pull_request' || github.head_ref == 'fireactions-runners' }} uses: ./.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml with: - ref: ${{ inputs.ref }} - dry_run: ${{ inputs.dry_run }} - pr_number: ${{ inputs.pr_number }} + ref: ${{ github.event_name == 'pull_request' && github.head_ref || inputs.ref }} + dry_run: ${{ github.event_name == 'pull_request' && 'true' || inputs.dry_run }} + pr_number: ${{ github.event_name == 'pull_request' && github.event.pull_request.number || inputs.pr_number }} secrets: inherit hotfixes-labels-dryrun: + if: ${{ github.event_name != 'pull_request' || github.head_ref == 'fireactions-runners' }} uses: ./.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml with: - ref: ${{ inputs.ref }} - dry_run: ${{ inputs.dry_run }} - pr_number: ${{ inputs.pr_number != '' && inputs.pr_number || '1' }} - base_ref: ${{ inputs.base_ref }} - head_ref: ${{ inputs.head_ref }} - label_name: ${{ inputs.label_name }} + ref: ${{ github.event_name == 'pull_request' && github.head_ref || inputs.ref }} + dry_run: ${{ github.event_name == 'pull_request' && 'true' || inputs.dry_run }} + pr_number: ${{ github.event_name == 'pull_request' && github.event.pull_request.number || (inputs.pr_number != '' && inputs.pr_number || '1') }} + base_ref: ${{ github.event_name == 'pull_request' && github.base_ref || inputs.base_ref }} + head_ref: ${{ github.event_name == 'pull_request' && github.head_ref || inputs.head_ref }} + label_name: ${{ github.event_name == 'pull_request' && 'breaking-change' || inputs.label_name }} secrets: inherit From 26e2001cdae155ef2c9f7066ffc19fbbf8e2f62a Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Wed, 4 Mar 2026 14:50:12 +0100 Subject: [PATCH 05/62] ci: restore Benchmarking runner for benchmark workflows --- .github/workflows/apply-benchmark-patch.yml | 2 +- .github/workflows/run-benchmarks.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/apply-benchmark-patch.yml b/.github/workflows/apply-benchmark-patch.yml index 1e2308f827..16b499bea6 100644 --- a/.github/workflows/apply-benchmark-patch.yml +++ b/.github/workflows/apply-benchmark-patch.yml @@ -13,7 +13,7 @@ permissions: jobs: apply: if: ${{ github.event.label.name == 'apply-benchmark-patch' }} - runs-on: [self-hosted, fireactions] + runs-on: Benchmarking steps: - name: Check out PR branch diff --git a/.github/workflows/run-benchmarks.yml b/.github/workflows/run-benchmarks.yml index 5140d860d3..12df3f8ab6 100644 --- a/.github/workflows/run-benchmarks.yml +++ b/.github/workflows/run-benchmarks.yml @@ -16,7 +16,7 @@ concurrency: jobs: validate-benchmarks: - runs-on: [self-hosted, fireactions] + runs-on: Benchmarking env: SKIP_BENCHMARKS: "0" From eecfc063beed8e1e8d7a3239a52d1f5d7bc9965c Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Wed, 4 Mar 2026 15:26:09 +0100 Subject: [PATCH 06/62] ci: harden fireactions dry-run checks after run failures --- .github/workflows/fireactions-smoke.yml | 3 +- .../test-fireactions-docker-dryrun.yml | 7 +- ...est-fireactions-docker-localnet-dryrun.yml | 12 ++- .../test-fireactions-noinstall-probes.yml | 77 ++++++++++++------- 4 files changed, 62 insertions(+), 37 deletions(-) diff --git a/.github/workflows/fireactions-smoke.yml b/.github/workflows/fireactions-smoke.yml index 4cf2d0afa9..ade597de7d 100644 --- a/.github/workflows/fireactions-smoke.yml +++ b/.github/workflows/fireactions-smoke.yml @@ -55,6 +55,7 @@ jobs: - name: Verify required tools run: | + set -euo pipefail for cmd in docker gh jq git curl unzip bc; do command -v "$cmd" done @@ -63,7 +64,7 @@ jobs: jq --version git --version curl --version - unzip --version + unzip -v | head -n 2 bc --version || bc -v - name: Install Rust toolchain diff --git a/.github/workflows/test-fireactions-docker-dryrun.yml b/.github/workflows/test-fireactions-docker-dryrun.yml index 1c8a76631a..09969a4fa9 100644 --- a/.github/workflows/test-fireactions-docker-dryrun.yml +++ b/.github/workflows/test-fireactions-docker-dryrun.yml @@ -55,11 +55,10 @@ jobs: done docker version - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 + with: + driver: docker - name: Build Docker image (dry-run, no push) uses: docker/build-push-action@v6 @@ -67,5 +66,5 @@ jobs: context: . push: false load: false - platforms: linux/amd64,linux/arm64 + platforms: linux/amd64 tags: ghcr.io/${{ github.repository }}:dryrun-${{ github.run_id }} diff --git a/.github/workflows/test-fireactions-docker-localnet-dryrun.yml b/.github/workflows/test-fireactions-docker-localnet-dryrun.yml index 2203587ac4..213d8295be 100644 --- a/.github/workflows/test-fireactions-docker-localnet-dryrun.yml +++ b/.github/workflows/test-fireactions-docker-localnet-dryrun.yml @@ -69,7 +69,7 @@ jobs: - name: Dependency gate (no installs) run: | set -euo pipefail - for cmd in docker rustup cargo clang pkg-config protoc gcc-aarch64-linux-gnu gcc-x86-64-linux-gnu; do + for cmd in docker clang pkg-config protoc; do command -v "$cmd" done pkg-config --exists openssl @@ -81,6 +81,11 @@ jobs: profile: minimal toolchain: 1.88.0 + - name: Verify Rust toolchain commands + run: | + command -v rustup + command -v cargo + - name: Add Rust target triple run: rustup target add x86_64-unknown-linux-gnu @@ -140,11 +145,10 @@ jobs: command -v docker docker version - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 + with: + driver: docker - name: Build Docker image (dry-run, no push) uses: docker/build-push-action@v6 diff --git a/.github/workflows/test-fireactions-noinstall-probes.yml b/.github/workflows/test-fireactions-noinstall-probes.yml index 73b49b99ab..970c03c55d 100644 --- a/.github/workflows/test-fireactions-noinstall-probes.yml +++ b/.github/workflows/test-fireactions-noinstall-probes.yml @@ -46,7 +46,8 @@ jobs: - name: Probe runner dependencies (no installs) run: | set +e - MISSING=0 + REQUIRED_MISSING=0 + OPTIONAL_MISSING=0 REPORT="$GITHUB_WORKSPACE/noinstall-probes-report.md" { echo "# Fireactions No-Install Probe Report" @@ -54,34 +55,49 @@ jobs: echo "- Ref: \`${{ inputs.ref }}\`" echo "- Runner: \`self-hosted, fireactions\`" echo - echo "## Command Checks" + echo "## Required Command Checks" } > "$REPORT" - check_cmd() { + check_required_cmd() { if command -v "$1" >/dev/null 2>&1; then echo "- [x] $1" >> "$REPORT" else echo "- [ ] $1 (missing)" >> "$REPORT" - MISSING=$((MISSING + 1)) + REQUIRED_MISSING=$((REQUIRED_MISSING + 1)) fi } - check_cmd docker - check_cmd gh - check_cmd jq - check_cmd git - check_cmd curl - check_cmd unzip - check_cmd bc - check_cmd make - check_cmd clang - check_cmd pkg-config - check_cmd protoc - check_cmd llvm-config - check_cmd gcc-aarch64-linux-gnu - check_cmd gcc-x86-64-linux-gnu - check_cmd node - check_cmd npm + check_optional_cmd() { + if command -v "$1" >/dev/null 2>&1; then + echo "- [x] $1" >> "$REPORT" + else + echo "- [ ] $1 (missing, image discrepancy)" >> "$REPORT" + OPTIONAL_MISSING=$((OPTIONAL_MISSING + 1)) + fi + } + + check_required_cmd docker + check_required_cmd gh + check_required_cmd jq + check_required_cmd git + check_required_cmd curl + check_required_cmd unzip + check_required_cmd bc + check_required_cmd make + check_required_cmd clang + check_required_cmd pkg-config + check_required_cmd protoc + check_required_cmd llvm-config + check_required_cmd node + check_required_cmd npm + + { + echo + echo "## Optional Command Checks (Image Parity)" + } >> "$REPORT" + + check_optional_cmd gcc-aarch64-linux-gnu + check_optional_cmd gcc-x86-64-linux-gnu { echo @@ -92,48 +108,53 @@ jobs: echo "- [x] docker buildx plugin" >> "$REPORT" else echo "- [ ] docker buildx plugin (missing)" >> "$REPORT" - MISSING=$((MISSING + 1)) + REQUIRED_MISSING=$((REQUIRED_MISSING + 1)) fi if docker compose version >/dev/null 2>&1; then echo "- [x] docker compose plugin" >> "$REPORT" else echo "- [ ] docker compose plugin (missing)" >> "$REPORT" - MISSING=$((MISSING + 1)) + REQUIRED_MISSING=$((REQUIRED_MISSING + 1)) fi if pkg-config --exists openssl; then echo "- [x] pkg-config openssl" >> "$REPORT" else echo "- [ ] pkg-config openssl (missing)" >> "$REPORT" - MISSING=$((MISSING + 1)) + REQUIRED_MISSING=$((REQUIRED_MISSING + 1)) fi if pkg-config --exists libudev; then echo "- [x] pkg-config libudev" >> "$REPORT" else echo "- [ ] pkg-config libudev (missing)" >> "$REPORT" - MISSING=$((MISSING + 1)) + REQUIRED_MISSING=$((REQUIRED_MISSING + 1)) fi if [ -f /etc/ssl/certs/ca-certificates.crt ]; then echo "- [x] ca-certificates bundle" >> "$REPORT" else echo "- [ ] ca-certificates bundle (missing)" >> "$REPORT" - MISSING=$((MISSING + 1)) + REQUIRED_MISSING=$((REQUIRED_MISSING + 1)) fi { echo echo "## Result" echo - echo "- Missing checks: $MISSING" + echo "- Missing required checks: $REQUIRED_MISSING" + echo "- Missing optional checks: $OPTIONAL_MISSING" } >> "$REPORT" cat "$REPORT" - if [ "$MISSING" -gt 0 ]; then - echo "Dependency probe failed with $MISSING missing checks." + if [ "$OPTIONAL_MISSING" -gt 0 ]; then + echo "::warning::Optional image parity checks missing: $OPTIONAL_MISSING" + fi + + if [ "$REQUIRED_MISSING" -gt 0 ]; then + echo "Dependency probe failed with $REQUIRED_MISSING missing required checks." exit 1 fi From 1010d3fcd8ae28754c03147ab8c69ff74d0826f5 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Wed, 4 Mar 2026 17:53:24 +0100 Subject: [PATCH 07/62] ci: trigger fireactions validation rerun From 9f467a6319fc4e1dce0924b9b886fce9ef6ec60a Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Wed, 4 Mar 2026 21:59:20 +0100 Subject: [PATCH 08/62] ci: add temporary benchmark workflows for pr2483 sweep --- .github/workflows/bench-cargo-audit.yml | 60 +++++ .github/workflows/bench-check-docker.yml | 40 +++ .github/workflows/bench-check-node-compat.yml | 98 ++++++++ .github/workflows/bench-check-rust.yml | 230 ++++++++++++++++++ .../workflows/bench-check-spec-version.yml | 74 ++++++ .github/workflows/bench-contract-tests.yml | 66 +++++ ...nch-fireactions-docker-localnet-dryrun.yml | 138 +++++++++++ .../bench-fireactions-light-dryrun.yml | 229 +++++++++++++++++ .github/workflows/bench-try-runtime.yml | 114 +++++++++ 9 files changed, 1049 insertions(+) create mode 100644 .github/workflows/bench-cargo-audit.yml create mode 100644 .github/workflows/bench-check-docker.yml create mode 100644 .github/workflows/bench-check-node-compat.yml create mode 100644 .github/workflows/bench-check-rust.yml create mode 100644 .github/workflows/bench-check-spec-version.yml create mode 100644 .github/workflows/bench-contract-tests.yml create mode 100644 .github/workflows/bench-fireactions-docker-localnet-dryrun.yml create mode 100644 .github/workflows/bench-fireactions-light-dryrun.yml create mode 100644 .github/workflows/bench-try-runtime.yml diff --git a/.github/workflows/bench-cargo-audit.yml b/.github/workflows/bench-cargo-audit.yml new file mode 100644 index 0000000000..e9ec826840 --- /dev/null +++ b/.github/workflows/bench-cargo-audit.yml @@ -0,0 +1,60 @@ +name: Bench Cargo Audit + +on: + workflow_dispatch: + inputs: + ref: + description: Branch or tag to benchmark + required: true + default: fireactions-runners + runner_label: + description: Fireactions benchmark label + required: true + sweep_id: + description: Sweep identifier + required: true + rep: + description: Repetition number + required: true + bench_job_key: + description: Job selector + required: true + default: cargo-audit + +run-name: bench-cargo-audit | ${{ inputs.sweep_id }} | ${{ inputs.bench_job_key }} | ${{ inputs.runner_label }} | rep-${{ inputs.rep }} + +concurrency: + group: bench-cargo-audit-${{ inputs.sweep_id }}-${{ inputs.runner_label }}-rep-${{ inputs.rep }} + cancel-in-progress: false + +jobs: + cargo-audit: + if: ${{ inputs.bench_job_key == 'cargo-audit' }} + runs-on: [self-hosted, ${{ inputs.runner_label }}] + env: + CARGO_BUILD_JOBS: 4 + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.ref }} + - name: Install dependencies + run: | + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl libssl-dev llvm libudev-dev protobuf-compiler pkg-config + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + - uses: Swatinem/rust-cache@v2 + with: + key: bench-cargo-audit + cache-on-failure: true + - run: cargo install --force cargo-audit + - run: cargo audit --version + - name: cargo audit + run: | + cargo audit --ignore RUSTSEC-2023-0091 \ + --ignore RUSTSEC-2024-0438 \ + --ignore RUSTSEC-2025-0009 \ + --ignore RUSTSEC-2025-0055 \ + --ignore RUSTSEC-2025-0073 \ + --ignore RUSTSEC-2025-0118 diff --git a/.github/workflows/bench-check-docker.yml b/.github/workflows/bench-check-docker.yml new file mode 100644 index 0000000000..b7d1185c9e --- /dev/null +++ b/.github/workflows/bench-check-docker.yml @@ -0,0 +1,40 @@ +name: Bench Check Docker + +on: + workflow_dispatch: + inputs: + ref: + description: Branch or tag to benchmark + required: true + default: fireactions-runners + runner_label: + description: Fireactions benchmark label + required: true + sweep_id: + description: Sweep identifier + required: true + rep: + description: Repetition number + required: true + bench_job_key: + description: Job selector + required: true + default: build + +run-name: bench-check-docker | ${{ inputs.sweep_id }} | ${{ inputs.bench_job_key }} | ${{ inputs.runner_label }} | rep-${{ inputs.rep }} + +concurrency: + group: bench-check-docker-${{ inputs.sweep_id }}-${{ inputs.runner_label }}-rep-${{ inputs.rep }} + cancel-in-progress: false + +jobs: + build: + if: ${{ inputs.bench_job_key == 'build' }} + runs-on: [self-hosted, ${{ inputs.runner_label }}] + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.ref }} + - uses: docker/setup-qemu-action@v2 + - uses: docker/setup-buildx-action@v2 + - run: docker build . diff --git a/.github/workflows/bench-check-node-compat.yml b/.github/workflows/bench-check-node-compat.yml new file mode 100644 index 0000000000..7d897913e3 --- /dev/null +++ b/.github/workflows/bench-check-node-compat.yml @@ -0,0 +1,98 @@ +name: Bench Check Node Compat + +on: + workflow_dispatch: + inputs: + ref: + description: Branch or tag to benchmark + required: true + default: fireactions-runners + runner_label: + description: Fireactions benchmark label + required: true + sweep_id: + description: Sweep identifier + required: true + rep: + description: Repetition number + required: true + bench_job_key: + description: Job selector (build or test) + required: true + default: build + +run-name: bench-check-node-compat | ${{ inputs.sweep_id }} | ${{ inputs.bench_job_key }} | ${{ inputs.runner_label }} | rep-${{ inputs.rep }} + +concurrency: + group: bench-check-node-compat-${{ inputs.sweep_id }}-${{ inputs.bench_job_key }}-${{ inputs.runner_label }}-rep-${{ inputs.rep }} + cancel-in-progress: false + +env: + CARGO_TERM_COLOR: always + CARGO_BUILD_JOBS: 4 + +jobs: + build: + if: ${{ inputs.bench_job_key == 'build' || inputs.bench_job_key == 'test' }} + name: build ${{ matrix.version.name }} + runs-on: [self-hosted, ${{ inputs.runner_label }}] + env: + RUST_BACKTRACE: full + strategy: + matrix: + version: + - name: old + ref: devnet-ready + - name: new + ref: ${{ inputs.ref }} + steps: + - name: Install dependencies + run: | + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl git make libssl-dev llvm libudev-dev protobuf-compiler pkg-config unzip + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + - uses: Swatinem/rust-cache@v2 + with: + key: bench-check-node-compat-${{ matrix.version.name }} + - name: Checkout ${{ matrix.version.name }} + uses: actions/checkout@v4 + with: + ref: ${{ matrix.version.ref }} + path: ${{ matrix.version.name }} + - name: Build ${{ matrix.version.name }} + working-directory: ${{ matrix.version.name }} + run: cargo build --release --locked + - name: Upload ${{ matrix.version.name }} node binary + uses: actions/upload-artifact@v4 + with: + name: node-subtensor-${{ matrix.version.name }} + path: ${{ matrix.version.name }}/target/release/node-subtensor + retention-days: 1 + + test: + if: ${{ inputs.bench_job_key == 'test' }} + needs: [build] + runs-on: [self-hosted, ${{ inputs.runner_label }}] + steps: + - uses: actions/download-artifact@v4 + with: + name: node-subtensor-old + path: /tmp/node-subtensor-old + - uses: actions/download-artifact@v4 + with: + name: node-subtensor-new + path: /tmp/node-subtensor-new + - uses: actions/setup-node@v4 + with: + node-version: "24" + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.ref }} + - name: Install npm dependencies + working-directory: ${{ github.workspace }}/.github/workflows/check-node-compat + run: npm install + - name: Run test + working-directory: ${{ github.workspace }}/.github/workflows/check-node-compat + run: npm run test diff --git a/.github/workflows/bench-check-rust.yml b/.github/workflows/bench-check-rust.yml new file mode 100644 index 0000000000..d88528b123 --- /dev/null +++ b/.github/workflows/bench-check-rust.yml @@ -0,0 +1,230 @@ +name: Bench Check Rust + +on: + workflow_dispatch: + inputs: + ref: + description: Branch or tag to benchmark + required: true + default: fireactions-runners + runner_label: + description: Fireactions benchmark label + required: true + sweep_id: + description: Sweep identifier + required: true + rep: + description: Repetition number + required: true + bench_job_key: + description: Job selector + required: true + default: cargo-test + +run-name: bench-check-rust | ${{ inputs.sweep_id }} | ${{ inputs.bench_job_key }} | ${{ inputs.runner_label }} | rep-${{ inputs.rep }} + +concurrency: + group: bench-check-rust-${{ inputs.sweep_id }}-${{ inputs.bench_job_key }}-${{ inputs.runner_label }}-rep-${{ inputs.rep }} + cancel-in-progress: false + +env: + CARGO_TERM_COLOR: always + +jobs: + cargo-fmt: + if: ${{ inputs.bench_job_key == 'cargo-fmt' }} + name: cargo fmt + runs-on: [self-hosted, ${{ inputs.runner_label }}] + env: + RUST_BACKTRACE: full + CARGO_BUILD_JOBS: 2 + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.ref }} + - name: Install dependencies + run: | + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + components: rustfmt + - uses: Swatinem/rust-cache@v2 + with: + key: bench-cargo-fmt + cache-on-failure: true + - name: cargo fmt + run: | + set -euo pipefail + output=$(cargo fmt --check --all 2>&1) || { + echo "$output" + exit 1 + } + if echo "$output" | grep -qiE "(the compiler unexpectedly panicked|panicked at|Internal Compiler Error|ICE|error: the compiler unexpectedly panicked)"; then + echo "$output" + exit 1 + fi + echo "$output" + + cargo-clippy-default-features: + if: ${{ inputs.bench_job_key == 'cargo-clippy' }} + name: cargo clippy + runs-on: [self-hosted, ${{ inputs.runner_label }}] + env: + RUST_BACKTRACE: full + SKIP_WASM_BUILD: 1 + CARGO_BUILD_JOBS: 6 + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.ref }} + - name: Install dependencies + run: | + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl git make libssl-dev llvm libudev-dev protobuf-compiler pkg-config + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + components: clippy + - uses: Swatinem/rust-cache@v2 + with: + key: bench-clippy-default-features + cache-on-failure: true + - run: cargo clippy --workspace --all-targets -- -D warnings + + cargo-check-lints: + if: ${{ inputs.bench_job_key == 'cargo-check-lints' }} + name: check custom lints + runs-on: [self-hosted, ${{ inputs.runner_label }}] + env: + RUSTFLAGS: -D warnings + RUST_BACKTRACE: full + SKIP_WASM_BUILD: 1 + CARGO_BUILD_JOBS: 4 + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.ref }} + - name: Install dependencies + run: | + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl git make libssl-dev llvm libudev-dev protobuf-compiler pkg-config + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + - uses: Swatinem/rust-cache@v2 + with: + key: bench-lints + cache-on-failure: true + - name: check lints + run: | + set -o pipefail + cargo check 2>&1 | sed -r "s/\x1B\[[0-9;]*[mK]//g" | grep "warning:" && exit 1 + echo "No warnings found." + + cargo-clippy-all-features: + if: ${{ inputs.bench_job_key == 'cargo-clippy-all-features' }} + name: cargo clippy --all-features + runs-on: [self-hosted, ${{ inputs.runner_label }}] + env: + RUST_BACKTRACE: full + SKIP_WASM_BUILD: 1 + CARGO_BUILD_JOBS: 6 + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.ref }} + - name: Install dependencies + run: | + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl git make libssl-dev llvm libudev-dev protobuf-compiler pkg-config + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + components: clippy + - uses: Swatinem/rust-cache@v2 + with: + key: bench-clippy-all-features + cache-on-failure: true + - run: cargo clippy --workspace --all-targets --all-features -- -D warnings + + cargo-test: + if: ${{ inputs.bench_job_key == 'cargo-test' }} + name: cargo test + runs-on: [self-hosted, ${{ inputs.runner_label }}] + env: + RUST_BACKTRACE: full + SKIP_WASM_BUILD: 1 + CARGO_BUILD_JOBS: 6 + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.ref }} + - name: Install dependencies + run: | + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl git make libssl-dev llvm libudev-dev protobuf-compiler pkg-config + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + - uses: Swatinem/rust-cache@v2 + with: + key: bench-cargo-test + cache-on-failure: true + - run: cargo test --workspace --all-features + + cargo-fix: + if: ${{ inputs.bench_job_key == 'cargo-fix' }} + name: cargo fix + runs-on: [self-hosted, ${{ inputs.runner_label }}] + env: + RUST_BACKTRACE: full + SKIP_WASM_BUILD: 1 + CARGO_BUILD_JOBS: 6 + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.ref }} + - name: Install dependencies + run: | + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl git make libssl-dev llvm libudev-dev protobuf-compiler pkg-config + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + - uses: Swatinem/rust-cache@v2 + with: + key: bench-cargo-fix + cache-on-failure: true + - name: cargo fix --workspace + run: | + cargo fix --workspace + if ! git diff --exit-code; then + echo "There are local changes after running cargo fix --workspace" + exit 1 + fi + + check-feature-propagation: + if: ${{ inputs.bench_job_key == 'check-feature-propagation' }} + name: zepter run check + runs-on: [self-hosted, ${{ inputs.runner_label }}] + env: + CARGO_BUILD_JOBS: 4 + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ inputs.ref }} + - name: Install dependencies + run: | + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl libssl-dev llvm libudev-dev protobuf-compiler pkg-config + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + - uses: Swatinem/rust-cache@v2 + - uses: taiki-e/install-action@v2 + with: + tool: zepter + - run: zepter run check diff --git a/.github/workflows/bench-check-spec-version.yml b/.github/workflows/bench-check-spec-version.yml new file mode 100644 index 0000000000..697d6b9629 --- /dev/null +++ b/.github/workflows/bench-check-spec-version.yml @@ -0,0 +1,74 @@ +name: Bench Check Spec Version + +on: + workflow_dispatch: + inputs: + ref: + description: Branch or tag to benchmark + required: true + default: fireactions-runners + runner_label: + description: Fireactions benchmark label + required: true + sweep_id: + description: Sweep identifier + required: true + rep: + description: Repetition number + required: true + bench_job_key: + description: Job selector (check-devnet, check-finney, check-testnet) + required: true + default: check-devnet + +run-name: bench-check-spec-version | ${{ inputs.sweep_id }} | ${{ inputs.bench_job_key }} | ${{ inputs.runner_label }} | rep-${{ inputs.rep }} + +concurrency: + group: bench-check-spec-version-${{ inputs.sweep_id }}-${{ inputs.bench_job_key }}-${{ inputs.runner_label }}-rep-${{ inputs.rep }} + cancel-in-progress: false + +env: + CARGO_TERM_COLOR: always + CARGO_BUILD_JOBS: 4 + +jobs: + check-spec-version: + runs-on: [self-hosted, ${{ inputs.runner_label }}] + steps: + - name: Resolve target network URI + id: net + run: | + case "${{ inputs.bench_job_key }}" in + check-devnet) echo "uri=wss://dev.chain.opentensor.ai:443" >> "$GITHUB_OUTPUT" ;; + check-finney) echo "uri=wss://entrypoint-finney.opentensor.ai:443" >> "$GITHUB_OUTPUT" ;; + check-testnet) echo "uri=wss://test.finney.opentensor.ai:443" >> "$GITHUB_OUTPUT" ;; + *) echo "Unsupported bench_job_key: ${{ inputs.bench_job_key }}"; exit 1 ;; + esac + - name: Dependencies + run: | + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl libssl-dev llvm libudev-dev protobuf-compiler pkg-config bc + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.ref }} + - uses: Swatinem/rust-cache@v2 + with: + key: bench-spec-version + cache-on-failure: true + save-if: true + - run: cargo install substrate-spec-version + - name: Check that spec_version has been bumped + run: | + spec_version=$(PATH=$PATH:$HOME/.cargo/.bin substrate-spec-version "${{ steps.net.outputs.uri }}" | tr -d '\n') + echo "network spec_version: $spec_version" + : ${spec_version:?bad spec version} + local_spec_version=$(cargo run -p subtensor-tools --bin spec-version | tr -d '\n') + echo "local spec_version: $local_spec_version" + if (( $(echo "$local_spec_version <= $spec_version" | bc -l) )); then + echo "$local_spec_version <= $spec_version ❌" + exit 1 + fi + echo "$local_spec_version > $spec_version ✅" diff --git a/.github/workflows/bench-contract-tests.yml b/.github/workflows/bench-contract-tests.yml new file mode 100644 index 0000000000..7e03ca2920 --- /dev/null +++ b/.github/workflows/bench-contract-tests.yml @@ -0,0 +1,66 @@ +name: Bench Contract Tests + +on: + workflow_dispatch: + inputs: + ref: + description: Branch or tag to benchmark + required: true + default: fireactions-runners + runner_label: + description: Fireactions benchmark label + required: true + sweep_id: + description: Sweep identifier + required: true + rep: + description: Repetition number + required: true + bench_job_key: + description: Job selector + required: true + default: run + +run-name: bench-contract-tests | ${{ inputs.sweep_id }} | ${{ inputs.bench_job_key }} | ${{ inputs.runner_label }} | rep-${{ inputs.rep }} + +concurrency: + group: bench-contract-tests-${{ inputs.sweep_id }}-${{ inputs.runner_label }}-rep-${{ inputs.rep }} + cancel-in-progress: false + +env: + CARGO_TERM_COLOR: always + +permissions: + contents: read + +jobs: + run: + if: ${{ inputs.bench_job_key == 'run' }} + runs-on: [self-hosted, ${{ inputs.runner_label }}] + env: + RUST_BACKTRACE: full + CARGO_BUILD_JOBS: 6 + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.ref }} + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + - uses: Swatinem/rust-cache@v2 + - uses: actions/setup-node@v4 + with: + node-version: "22" + - name: Install dependencies + run: | + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl libssl-dev llvm libudev-dev protobuf-compiler nodejs pkg-config + - uses: nick-fields/retry@v3 + with: + timeout_minutes: 120 + max_attempts: 3 + retry_wait_seconds: 60 + command: | + cd ${{ github.workspace }} + npm install --global yarn + ./contract-tests/run-ci.sh diff --git a/.github/workflows/bench-fireactions-docker-localnet-dryrun.yml b/.github/workflows/bench-fireactions-docker-localnet-dryrun.yml new file mode 100644 index 0000000000..b28e92c1ef --- /dev/null +++ b/.github/workflows/bench-fireactions-docker-localnet-dryrun.yml @@ -0,0 +1,138 @@ +name: Bench Fireactions Docker Localnet Dry-Run + +on: + workflow_dispatch: + inputs: + ref: + description: Branch or tag to benchmark + required: true + default: fireactions-runners + runner_label: + description: Fireactions benchmark label + required: true + sweep_id: + description: Sweep identifier + required: true + rep: + description: Repetition number + required: true + bench_job_key: + description: Job selector (artifacts-fast-runtime, artifacts-non-fast-runtime, docker) + required: true + default: artifacts-fast-runtime + +run-name: bench-docker-localnet | ${{ inputs.sweep_id }} | ${{ inputs.bench_job_key }} | ${{ inputs.runner_label }} | rep-${{ inputs.rep }} + +concurrency: + group: bench-docker-localnet-${{ inputs.sweep_id }}-${{ inputs.bench_job_key }}-${{ inputs.runner_label }}-rep-${{ inputs.rep }} + cancel-in-progress: false + +permissions: + contents: read + actions: read + packages: read + +jobs: + setup: + runs-on: [self-hosted, ${{ inputs.runner_label }}] + outputs: + ref: ${{ steps.vars.outputs.ref }} + tag: ${{ steps.vars.outputs.tag }} + steps: + - id: vars + run: | + echo "ref=${{ inputs.ref }}" >> "$GITHUB_OUTPUT" + echo "tag=dryrun-${{ github.run_id }}" >> "$GITHUB_OUTPUT" + + artifacts: + name: Node • ${{ matrix.runtime }} • amd64 + needs: setup + if: ${{ inputs.bench_job_key == 'docker' || inputs.bench_job_key == matrix.key }} + strategy: + fail-fast: false + matrix: + include: + - runtime: fast-runtime + key: artifacts-fast-runtime + - runtime: non-fast-runtime + key: artifacts-non-fast-runtime + runs-on: [self-hosted, ${{ inputs.runner_label }}] + timeout-minutes: 120 + env: + CARGO_BUILD_JOBS: 6 + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ needs.setup.outputs.ref }} + - name: Dependency gate + run: | + set -euo pipefail + for cmd in docker clang pkg-config protoc; do + command -v "$cmd" + done + pkg-config --exists openssl + pkg-config --exists libudev + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: 1.88.0 + - run: rustup target add x86_64-unknown-linux-gnu + - name: Patch limits for local run + run: | + chmod +x ./scripts/localnet_patch.sh + ./scripts/localnet_patch.sh + - name: Build binaries + run: | + export PATH="$HOME/.cargo/bin:$PATH" + export CARGO_BUILD_TARGET="x86_64-unknown-linux-gnu" + if [ "${{ matrix.runtime }}" = "fast-runtime" ]; then + ./scripts/localnet.sh --build-only + else + ./scripts/localnet.sh False --build-only + fi + - name: Prepare artifacts for upload + run: | + RUNTIME="${{ matrix.runtime }}" + TRIPLE="x86_64-unknown-linux-gnu" + mkdir -p build/ci_target/${RUNTIME}/${TRIPLE}/release/ + cp -v target/${RUNTIME}/${TRIPLE}/release/node-subtensor build/ci_target/${RUNTIME}/${TRIPLE}/release/ + mkdir -p build/ci_target/${RUNTIME}/${TRIPLE}/release/wbuild/node-subtensor-runtime/ + cp -v target/${RUNTIME}/${TRIPLE}/release/wbuild/node-subtensor-runtime/node_subtensor_runtime.compact.compressed.wasm build/ci_target/${RUNTIME}/${TRIPLE}/release/wbuild/node-subtensor-runtime/ + - uses: actions/upload-artifact@v4 + with: + name: dryrun-binaries-x86_64-unknown-linux-gnu-${{ matrix.runtime }} + path: build/ + if-no-files-found: error + + docker: + if: ${{ inputs.bench_job_key == 'docker' }} + needs: [setup, artifacts] + runs-on: [self-hosted, ${{ inputs.runner_label }}] + timeout-minutes: 90 + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ needs.setup.outputs.ref }} + - uses: actions/download-artifact@v5 + with: + pattern: dryrun-binaries-* + path: build/ + merge-multiple: true + - name: Dependency gate + run: | + set -euo pipefail + command -v docker + docker version + - uses: docker/setup-buildx-action@v3 + with: + driver: docker + - uses: docker/build-push-action@v6 + with: + context: . + file: Dockerfile-localnet + build-args: | + BUILT_IN_CI="Boom shakalaka" + push: false + load: false + platforms: linux/amd64 + tags: ghcr.io/${{ github.repository }}-localnet:${{ needs.setup.outputs.tag }} diff --git a/.github/workflows/bench-fireactions-light-dryrun.yml b/.github/workflows/bench-fireactions-light-dryrun.yml new file mode 100644 index 0000000000..53beb26187 --- /dev/null +++ b/.github/workflows/bench-fireactions-light-dryrun.yml @@ -0,0 +1,229 @@ +name: Bench Fireactions Light Dry-Run + +on: + workflow_dispatch: + inputs: + ref: + description: Branch or tag to benchmark + required: true + default: fireactions-runners + runner_label: + description: Fireactions benchmark label + required: true + sweep_id: + description: Sweep identifier + required: true + rep: + description: Repetition number + required: true + bench_job_key: + description: Job selector + required: true + default: smoke + pr_number: + description: Optional PR number for artifact fetch tests + required: false + default: "2483" + +run-name: bench-fireactions-light | ${{ inputs.sweep_id }} | ${{ inputs.bench_job_key }} | ${{ inputs.runner_label }} | rep-${{ inputs.rep }} + +concurrency: + group: bench-fireactions-light-${{ inputs.sweep_id }}-${{ inputs.bench_job_key }}-${{ inputs.runner_label }}-rep-${{ inputs.rep }} + cancel-in-progress: false + +permissions: + contents: read + actions: read + pull-requests: read + packages: read + +jobs: + smoke: + if: ${{ inputs.bench_job_key == 'smoke' }} + runs-on: [self-hosted, ${{ inputs.runner_label }}] + timeout-minutes: 30 + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.ref }} + - name: Verify required tools + run: | + set -euo pipefail + for cmd in docker gh jq git curl unzip bc; do + command -v "$cmd" + done + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + - name: Verify Rust toolchain + run: | + rustc --version + cargo --version + - name: Run Docker smoke test + run: | + docker pull hello-world:latest + docker run --rm hello-world:latest + + noinstall-probes: + if: ${{ inputs.bench_job_key == 'probes' }} + runs-on: [self-hosted, ${{ inputs.runner_label }}] + timeout-minutes: 20 + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.ref }} + - name: Probe runner dependencies + run: | + set +e + REQUIRED_MISSING=0 + for cmd in docker gh jq git curl unzip bc make clang pkg-config protoc llvm-config node npm; do + command -v "$cmd" >/dev/null 2>&1 || REQUIRED_MISSING=$((REQUIRED_MISSING+1)) + done + docker buildx version >/dev/null 2>&1 || REQUIRED_MISSING=$((REQUIRED_MISSING+1)) + docker compose version >/dev/null 2>&1 || REQUIRED_MISSING=$((REQUIRED_MISSING+1)) + pkg-config --exists openssl || REQUIRED_MISSING=$((REQUIRED_MISSING+1)) + pkg-config --exists libudev || REQUIRED_MISSING=$((REQUIRED_MISSING+1)) + [ -f /etc/ssl/certs/ca-certificates.crt ] || REQUIRED_MISSING=$((REQUIRED_MISSING+1)) + echo "required_missing=$REQUIRED_MISSING" + [ "$REQUIRED_MISSING" -eq 0 ] + + update-chainspecs-dryrun: + if: ${{ inputs.bench_job_key == 'update-chainspecs-dryrun' }} + runs-on: [self-hosted, ${{ inputs.runner_label }}] + timeout-minutes: 120 + env: + CARGO_TERM_COLOR: always + RUST_BACKTRACE: full + CARGO_BUILD_JOBS: 6 + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.ref }} + - name: Dependency gate + run: | + set -euo pipefail + for cmd in clang curl pkg-config llvm-config protoc git; do + command -v "$cmd" + done + pkg-config --exists openssl + pkg-config --exists libudev + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + - uses: Swatinem/rust-cache@v2 + - run: ./scripts/build_all_chainspecs.sh + + build-docs-dryrun: + if: ${{ inputs.bench_job_key == 'build-docs-dryrun' }} + runs-on: [self-hosted, ${{ inputs.runner_label }}] + timeout-minutes: 90 + env: + CARGO_BUILD_JOBS: 4 + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.ref }} + - name: Dependency gate + run: | + set -euo pipefail + for cmd in clang curl pkg-config llvm-config protoc; do + command -v "$cmd" + done + pkg-config --exists openssl + pkg-config --exists libudev + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + - uses: actions-rs/cargo@v1 + with: + command: doc + args: --document-private-items + + publish-dryrun: + if: ${{ inputs.bench_job_key == 'publish-dryrun' }} + runs-on: [self-hosted, ${{ inputs.runner_label }}] + timeout-minutes: 45 + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.ref }} + - name: Dependency gate + run: | + set -euo pipefail + for cmd in docker git; do + command -v "$cmd" + done + - uses: docker/setup-buildx-action@v3 + with: + driver: docker + - uses: docker/build-push-action@v6 + with: + context: . + push: false + load: false + platforms: linux/amd64 + tags: ghcr.io/${{ github.repository }}:dryrun-${{ github.run_id }} + + apply-dryrun: + if: ${{ inputs.bench_job_key == 'apply-dryrun' }} + runs-on: [self-hosted, ${{ inputs.runner_label }}] + timeout-minutes: 30 + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.ref }} + - name: Dependency gate + run: | + set -euo pipefail + for cmd in gh git tar; do + command -v "$cmd" + done + - name: Download latest bench patch artifact from benchmark workflow + if: ${{ inputs.pr_number != '' }} + uses: dawidd6/action-download-artifact@v3 + with: + workflow: run-benchmarks.yml + pr: ${{ inputs.pr_number }} + name: bench-patch + path: . + allow_forks: true + check_artifacts: true + search_artifacts: true + workflow_conclusion: "" + if_no_artifact_found: warn + - name: Validate patch apply in dry-run mode + run: | + set -euo pipefail + if [ -f "bench-patch.tgz" ]; then + tar -xzf bench-patch.tgz + elif [ -f "bench-patch/bench-patch.tgz" ]; then + tar -xzf bench-patch/bench-patch.tgz + fi + if [ -f ".bench_patch/benchmark_patch.diff" ]; then + git apply --check ".bench_patch/benchmark_patch.diff" + else + echo "No benchmark patch found" + fi + + payload-dryrun: + if: ${{ inputs.bench_job_key == 'payload-dryrun' }} + runs-on: [self-hosted, ${{ inputs.runner_label }}] + timeout-minutes: 20 + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.ref }} + - name: Dependency gate + run: | + set -euo pipefail + for cmd in curl jq; do + command -v "$cmd" + done + - name: Render and validate payloads + run: | + set -euo pipefail + HOTFIX_LABEL_PAYLOAD='{"labels":["hotfix"]}' + echo "$HOTFIX_LABEL_PAYLOAD" | jq -e '.labels | index("hotfix")' >/dev/null + BREAKING_BODY='@opentensor/cerebrum / @opentensor/gyrus / @opentensor/cortex breaking change detected! Please prepare accordingly!' + BREAKING_PAYLOAD="$(jq -n --arg body "$BREAKING_BODY" '{body: $body}')" + echo "$BREAKING_PAYLOAD" | jq -e '.body | length > 0' >/dev/null diff --git a/.github/workflows/bench-try-runtime.yml b/.github/workflows/bench-try-runtime.yml new file mode 100644 index 0000000000..980c1ad0c0 --- /dev/null +++ b/.github/workflows/bench-try-runtime.yml @@ -0,0 +1,114 @@ +name: Bench Try Runtime + +on: + workflow_dispatch: + inputs: + ref: + description: Branch or tag to benchmark + required: true + default: fireactions-runners + runner_label: + description: Fireactions benchmark label + required: true + sweep_id: + description: Sweep identifier + required: true + rep: + description: Repetition number + required: true + bench_job_key: + description: Job selector + required: true + default: check-finney + +run-name: bench-try-runtime | ${{ inputs.sweep_id }} | ${{ inputs.bench_job_key }} | ${{ inputs.runner_label }} | rep-${{ inputs.rep }} + +concurrency: + group: bench-try-runtime-${{ inputs.sweep_id }}-${{ inputs.bench_job_key }}-${{ inputs.runner_label }}-rep-${{ inputs.rep }} + cancel-in-progress: false + +env: + CARGO_TERM_COLOR: always + +jobs: + check-devnet: + if: ${{ inputs.bench_job_key == 'check-devnet' }} + name: check devnet + runs-on: [self-hosted, ${{ inputs.runner_label }}] + env: + CARGO_BUILD_JOBS: 6 + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.ref }} + - name: Install dependencies + run: | + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl git make libssl-dev llvm libudev-dev protobuf-compiler pkg-config unzip + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + - uses: Swatinem/rust-cache@v2 + with: + key: bench-try-runtime + - uses: paritytech/try-runtime-gha@v0.1.0 + with: + runtime-package: node-subtensor-runtime + node-uri: wss://dev.chain.opentensor.ai:443 + checks: all + extra-args: --disable-spec-version-check --no-weight-warnings + + check-testnet: + if: ${{ inputs.bench_job_key == 'check-testnet' }} + name: check testnet + runs-on: [self-hosted, ${{ inputs.runner_label }}] + env: + CARGO_BUILD_JOBS: 6 + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.ref }} + - name: Install dependencies + run: | + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl git make libssl-dev llvm libudev-dev protobuf-compiler pkg-config unzip + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + - uses: Swatinem/rust-cache@v2 + with: + key: bench-try-runtime + - uses: paritytech/try-runtime-gha@v0.1.0 + with: + runtime-package: node-subtensor-runtime + node-uri: wss://archive.dev.opentensor.ai:8443 + checks: all + extra-args: --disable-spec-version-check --no-weight-warnings + + check-finney: + if: ${{ inputs.bench_job_key == 'check-finney' }} + name: check finney + runs-on: [self-hosted, ${{ inputs.runner_label }}] + env: + CARGO_BUILD_JOBS: 6 + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.ref }} + - name: Install dependencies + run: | + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl git make libssl-dev llvm libudev-dev protobuf-compiler pkg-config unzip + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + - uses: Swatinem/rust-cache@v2 + with: + key: bench-try-runtime + cache-on-failure: true + - uses: paritytech/try-runtime-gha@v0.1.0 + with: + runtime-package: node-subtensor-runtime + node-uri: wss://archive.dev.opentensor.ai:443 + checks: all + extra-args: --disable-spec-version-check --no-weight-warnings From a6e06dde5d79dc3cb8b5099647ab49f8b1f30862 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Wed, 4 Mar 2026 22:54:39 +0100 Subject: [PATCH 09/62] bench-trigger sweep=pr2483-commit-hostpin host=ax102 profile=2c8g rep=1 From 239229a1b43c4261847ff6409693c2e14482fd28 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Wed, 4 Mar 2026 23:00:43 +0100 Subject: [PATCH 10/62] ci: harden bench workflow input references --- .github/workflows/bench-cargo-audit.yml | 10 ++-- .github/workflows/bench-check-docker.yml | 10 ++-- .github/workflows/bench-check-node-compat.yml | 16 +++--- .github/workflows/bench-check-rust.yml | 46 ++++++++--------- .../workflows/bench-check-spec-version.yml | 12 ++--- .github/workflows/bench-contract-tests.yml | 10 ++-- ...nch-fireactions-docker-localnet-dryrun.yml | 16 +++--- .../bench-fireactions-light-dryrun.yml | 50 +++++++++---------- .github/workflows/bench-try-runtime.yml | 22 ++++---- 9 files changed, 96 insertions(+), 96 deletions(-) diff --git a/.github/workflows/bench-cargo-audit.yml b/.github/workflows/bench-cargo-audit.yml index e9ec826840..bbadee01b3 100644 --- a/.github/workflows/bench-cargo-audit.yml +++ b/.github/workflows/bench-cargo-audit.yml @@ -21,22 +21,22 @@ on: required: true default: cargo-audit -run-name: bench-cargo-audit | ${{ inputs.sweep_id }} | ${{ inputs.bench_job_key }} | ${{ inputs.runner_label }} | rep-${{ inputs.rep }} +run-name: bench-cargo-audit | ${{ github.event.inputs.sweep_id }} | ${{ github.event.inputs.bench_job_key }} | ${{ github.event.inputs.runner_label }} | rep-${{ github.event.inputs.rep }} concurrency: - group: bench-cargo-audit-${{ inputs.sweep_id }}-${{ inputs.runner_label }}-rep-${{ inputs.rep }} + group: bench-cargo-audit-${{ github.event.inputs.sweep_id }}-${{ github.event.inputs.runner_label }}-rep-${{ github.event.inputs.rep }} cancel-in-progress: false jobs: cargo-audit: - if: ${{ inputs.bench_job_key == 'cargo-audit' }} - runs-on: [self-hosted, ${{ inputs.runner_label }}] + if: ${{ github.event.inputs.bench_job_key == 'cargo-audit' }} + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] env: CARGO_BUILD_JOBS: 4 steps: - uses: actions/checkout@v4 with: - ref: ${{ inputs.ref }} + ref: ${{ github.event.inputs.ref }} - name: Install dependencies run: | sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update diff --git a/.github/workflows/bench-check-docker.yml b/.github/workflows/bench-check-docker.yml index b7d1185c9e..4f222edc91 100644 --- a/.github/workflows/bench-check-docker.yml +++ b/.github/workflows/bench-check-docker.yml @@ -21,20 +21,20 @@ on: required: true default: build -run-name: bench-check-docker | ${{ inputs.sweep_id }} | ${{ inputs.bench_job_key }} | ${{ inputs.runner_label }} | rep-${{ inputs.rep }} +run-name: bench-check-docker | ${{ github.event.inputs.sweep_id }} | ${{ github.event.inputs.bench_job_key }} | ${{ github.event.inputs.runner_label }} | rep-${{ github.event.inputs.rep }} concurrency: - group: bench-check-docker-${{ inputs.sweep_id }}-${{ inputs.runner_label }}-rep-${{ inputs.rep }} + group: bench-check-docker-${{ github.event.inputs.sweep_id }}-${{ github.event.inputs.runner_label }}-rep-${{ github.event.inputs.rep }} cancel-in-progress: false jobs: build: - if: ${{ inputs.bench_job_key == 'build' }} - runs-on: [self-hosted, ${{ inputs.runner_label }}] + if: ${{ github.event.inputs.bench_job_key == 'build' }} + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] steps: - uses: actions/checkout@v4 with: - ref: ${{ inputs.ref }} + ref: ${{ github.event.inputs.ref }} - uses: docker/setup-qemu-action@v2 - uses: docker/setup-buildx-action@v2 - run: docker build . diff --git a/.github/workflows/bench-check-node-compat.yml b/.github/workflows/bench-check-node-compat.yml index 7d897913e3..b52693b339 100644 --- a/.github/workflows/bench-check-node-compat.yml +++ b/.github/workflows/bench-check-node-compat.yml @@ -21,10 +21,10 @@ on: required: true default: build -run-name: bench-check-node-compat | ${{ inputs.sweep_id }} | ${{ inputs.bench_job_key }} | ${{ inputs.runner_label }} | rep-${{ inputs.rep }} +run-name: bench-check-node-compat | ${{ github.event.inputs.sweep_id }} | ${{ github.event.inputs.bench_job_key }} | ${{ github.event.inputs.runner_label }} | rep-${{ github.event.inputs.rep }} concurrency: - group: bench-check-node-compat-${{ inputs.sweep_id }}-${{ inputs.bench_job_key }}-${{ inputs.runner_label }}-rep-${{ inputs.rep }} + group: bench-check-node-compat-${{ github.event.inputs.sweep_id }}-${{ github.event.inputs.bench_job_key }}-${{ github.event.inputs.runner_label }}-rep-${{ github.event.inputs.rep }} cancel-in-progress: false env: @@ -33,9 +33,9 @@ env: jobs: build: - if: ${{ inputs.bench_job_key == 'build' || inputs.bench_job_key == 'test' }} + if: ${{ github.event.inputs.bench_job_key == 'build' || github.event.inputs.bench_job_key == 'test' }} name: build ${{ matrix.version.name }} - runs-on: [self-hosted, ${{ inputs.runner_label }}] + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] env: RUST_BACKTRACE: full strategy: @@ -44,7 +44,7 @@ jobs: - name: old ref: devnet-ready - name: new - ref: ${{ inputs.ref }} + ref: ${{ github.event.inputs.ref }} steps: - name: Install dependencies run: | @@ -72,9 +72,9 @@ jobs: retention-days: 1 test: - if: ${{ inputs.bench_job_key == 'test' }} + if: ${{ github.event.inputs.bench_job_key == 'test' }} needs: [build] - runs-on: [self-hosted, ${{ inputs.runner_label }}] + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] steps: - uses: actions/download-artifact@v4 with: @@ -89,7 +89,7 @@ jobs: node-version: "24" - uses: actions/checkout@v4 with: - ref: ${{ inputs.ref }} + ref: ${{ github.event.inputs.ref }} - name: Install npm dependencies working-directory: ${{ github.workspace }}/.github/workflows/check-node-compat run: npm install diff --git a/.github/workflows/bench-check-rust.yml b/.github/workflows/bench-check-rust.yml index d88528b123..ebb1708eec 100644 --- a/.github/workflows/bench-check-rust.yml +++ b/.github/workflows/bench-check-rust.yml @@ -21,10 +21,10 @@ on: required: true default: cargo-test -run-name: bench-check-rust | ${{ inputs.sweep_id }} | ${{ inputs.bench_job_key }} | ${{ inputs.runner_label }} | rep-${{ inputs.rep }} +run-name: bench-check-rust | ${{ github.event.inputs.sweep_id }} | ${{ github.event.inputs.bench_job_key }} | ${{ github.event.inputs.runner_label }} | rep-${{ github.event.inputs.rep }} concurrency: - group: bench-check-rust-${{ inputs.sweep_id }}-${{ inputs.bench_job_key }}-${{ inputs.runner_label }}-rep-${{ inputs.rep }} + group: bench-check-rust-${{ github.event.inputs.sweep_id }}-${{ github.event.inputs.bench_job_key }}-${{ github.event.inputs.runner_label }}-rep-${{ github.event.inputs.rep }} cancel-in-progress: false env: @@ -32,16 +32,16 @@ env: jobs: cargo-fmt: - if: ${{ inputs.bench_job_key == 'cargo-fmt' }} + if: ${{ github.event.inputs.bench_job_key == 'cargo-fmt' }} name: cargo fmt - runs-on: [self-hosted, ${{ inputs.runner_label }}] + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] env: RUST_BACKTRACE: full CARGO_BUILD_JOBS: 2 steps: - uses: actions/checkout@v4 with: - ref: ${{ inputs.ref }} + ref: ${{ github.event.inputs.ref }} - name: Install dependencies run: | sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update @@ -68,9 +68,9 @@ jobs: echo "$output" cargo-clippy-default-features: - if: ${{ inputs.bench_job_key == 'cargo-clippy' }} + if: ${{ github.event.inputs.bench_job_key == 'cargo-clippy' }} name: cargo clippy - runs-on: [self-hosted, ${{ inputs.runner_label }}] + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 @@ -78,7 +78,7 @@ jobs: steps: - uses: actions/checkout@v4 with: - ref: ${{ inputs.ref }} + ref: ${{ github.event.inputs.ref }} - name: Install dependencies run: | sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update @@ -94,9 +94,9 @@ jobs: - run: cargo clippy --workspace --all-targets -- -D warnings cargo-check-lints: - if: ${{ inputs.bench_job_key == 'cargo-check-lints' }} + if: ${{ github.event.inputs.bench_job_key == 'cargo-check-lints' }} name: check custom lints - runs-on: [self-hosted, ${{ inputs.runner_label }}] + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] env: RUSTFLAGS: -D warnings RUST_BACKTRACE: full @@ -105,7 +105,7 @@ jobs: steps: - uses: actions/checkout@v4 with: - ref: ${{ inputs.ref }} + ref: ${{ github.event.inputs.ref }} - name: Install dependencies run: | sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update @@ -124,9 +124,9 @@ jobs: echo "No warnings found." cargo-clippy-all-features: - if: ${{ inputs.bench_job_key == 'cargo-clippy-all-features' }} + if: ${{ github.event.inputs.bench_job_key == 'cargo-clippy-all-features' }} name: cargo clippy --all-features - runs-on: [self-hosted, ${{ inputs.runner_label }}] + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 @@ -134,7 +134,7 @@ jobs: steps: - uses: actions/checkout@v4 with: - ref: ${{ inputs.ref }} + ref: ${{ github.event.inputs.ref }} - name: Install dependencies run: | sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update @@ -150,9 +150,9 @@ jobs: - run: cargo clippy --workspace --all-targets --all-features -- -D warnings cargo-test: - if: ${{ inputs.bench_job_key == 'cargo-test' }} + if: ${{ github.event.inputs.bench_job_key == 'cargo-test' }} name: cargo test - runs-on: [self-hosted, ${{ inputs.runner_label }}] + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 @@ -160,7 +160,7 @@ jobs: steps: - uses: actions/checkout@v4 with: - ref: ${{ inputs.ref }} + ref: ${{ github.event.inputs.ref }} - name: Install dependencies run: | sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update @@ -175,9 +175,9 @@ jobs: - run: cargo test --workspace --all-features cargo-fix: - if: ${{ inputs.bench_job_key == 'cargo-fix' }} + if: ${{ github.event.inputs.bench_job_key == 'cargo-fix' }} name: cargo fix - runs-on: [self-hosted, ${{ inputs.runner_label }}] + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 @@ -185,7 +185,7 @@ jobs: steps: - uses: actions/checkout@v4 with: - ref: ${{ inputs.ref }} + ref: ${{ github.event.inputs.ref }} - name: Install dependencies run: | sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update @@ -206,16 +206,16 @@ jobs: fi check-feature-propagation: - if: ${{ inputs.bench_job_key == 'check-feature-propagation' }} + if: ${{ github.event.inputs.bench_job_key == 'check-feature-propagation' }} name: zepter run check - runs-on: [self-hosted, ${{ inputs.runner_label }}] + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] env: CARGO_BUILD_JOBS: 4 steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - ref: ${{ inputs.ref }} + ref: ${{ github.event.inputs.ref }} - name: Install dependencies run: | sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update diff --git a/.github/workflows/bench-check-spec-version.yml b/.github/workflows/bench-check-spec-version.yml index 697d6b9629..1091a655b2 100644 --- a/.github/workflows/bench-check-spec-version.yml +++ b/.github/workflows/bench-check-spec-version.yml @@ -21,10 +21,10 @@ on: required: true default: check-devnet -run-name: bench-check-spec-version | ${{ inputs.sweep_id }} | ${{ inputs.bench_job_key }} | ${{ inputs.runner_label }} | rep-${{ inputs.rep }} +run-name: bench-check-spec-version | ${{ github.event.inputs.sweep_id }} | ${{ github.event.inputs.bench_job_key }} | ${{ github.event.inputs.runner_label }} | rep-${{ github.event.inputs.rep }} concurrency: - group: bench-check-spec-version-${{ inputs.sweep_id }}-${{ inputs.bench_job_key }}-${{ inputs.runner_label }}-rep-${{ inputs.rep }} + group: bench-check-spec-version-${{ github.event.inputs.sweep_id }}-${{ github.event.inputs.bench_job_key }}-${{ github.event.inputs.runner_label }}-rep-${{ github.event.inputs.rep }} cancel-in-progress: false env: @@ -33,16 +33,16 @@ env: jobs: check-spec-version: - runs-on: [self-hosted, ${{ inputs.runner_label }}] + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] steps: - name: Resolve target network URI id: net run: | - case "${{ inputs.bench_job_key }}" in + case "${{ github.event.inputs.bench_job_key }}" in check-devnet) echo "uri=wss://dev.chain.opentensor.ai:443" >> "$GITHUB_OUTPUT" ;; check-finney) echo "uri=wss://entrypoint-finney.opentensor.ai:443" >> "$GITHUB_OUTPUT" ;; check-testnet) echo "uri=wss://test.finney.opentensor.ai:443" >> "$GITHUB_OUTPUT" ;; - *) echo "Unsupported bench_job_key: ${{ inputs.bench_job_key }}"; exit 1 ;; + *) echo "Unsupported bench_job_key: ${{ github.event.inputs.bench_job_key }}"; exit 1 ;; esac - name: Dependencies run: | @@ -53,7 +53,7 @@ jobs: toolchain: stable - uses: actions/checkout@v4 with: - ref: ${{ inputs.ref }} + ref: ${{ github.event.inputs.ref }} - uses: Swatinem/rust-cache@v2 with: key: bench-spec-version diff --git a/.github/workflows/bench-contract-tests.yml b/.github/workflows/bench-contract-tests.yml index 7e03ca2920..3e493cd9e1 100644 --- a/.github/workflows/bench-contract-tests.yml +++ b/.github/workflows/bench-contract-tests.yml @@ -21,10 +21,10 @@ on: required: true default: run -run-name: bench-contract-tests | ${{ inputs.sweep_id }} | ${{ inputs.bench_job_key }} | ${{ inputs.runner_label }} | rep-${{ inputs.rep }} +run-name: bench-contract-tests | ${{ github.event.inputs.sweep_id }} | ${{ github.event.inputs.bench_job_key }} | ${{ github.event.inputs.runner_label }} | rep-${{ github.event.inputs.rep }} concurrency: - group: bench-contract-tests-${{ inputs.sweep_id }}-${{ inputs.runner_label }}-rep-${{ inputs.rep }} + group: bench-contract-tests-${{ github.event.inputs.sweep_id }}-${{ github.event.inputs.runner_label }}-rep-${{ github.event.inputs.rep }} cancel-in-progress: false env: @@ -35,15 +35,15 @@ permissions: jobs: run: - if: ${{ inputs.bench_job_key == 'run' }} - runs-on: [self-hosted, ${{ inputs.runner_label }}] + if: ${{ github.event.inputs.bench_job_key == 'run' }} + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] env: RUST_BACKTRACE: full CARGO_BUILD_JOBS: 6 steps: - uses: actions/checkout@v4 with: - ref: ${{ inputs.ref }} + ref: ${{ github.event.inputs.ref }} - uses: actions-rs/toolchain@v1 with: toolchain: stable diff --git a/.github/workflows/bench-fireactions-docker-localnet-dryrun.yml b/.github/workflows/bench-fireactions-docker-localnet-dryrun.yml index b28e92c1ef..93498aaa6a 100644 --- a/.github/workflows/bench-fireactions-docker-localnet-dryrun.yml +++ b/.github/workflows/bench-fireactions-docker-localnet-dryrun.yml @@ -21,10 +21,10 @@ on: required: true default: artifacts-fast-runtime -run-name: bench-docker-localnet | ${{ inputs.sweep_id }} | ${{ inputs.bench_job_key }} | ${{ inputs.runner_label }} | rep-${{ inputs.rep }} +run-name: bench-docker-localnet | ${{ github.event.inputs.sweep_id }} | ${{ github.event.inputs.bench_job_key }} | ${{ github.event.inputs.runner_label }} | rep-${{ github.event.inputs.rep }} concurrency: - group: bench-docker-localnet-${{ inputs.sweep_id }}-${{ inputs.bench_job_key }}-${{ inputs.runner_label }}-rep-${{ inputs.rep }} + group: bench-docker-localnet-${{ github.event.inputs.sweep_id }}-${{ github.event.inputs.bench_job_key }}-${{ github.event.inputs.runner_label }}-rep-${{ github.event.inputs.rep }} cancel-in-progress: false permissions: @@ -34,20 +34,20 @@ permissions: jobs: setup: - runs-on: [self-hosted, ${{ inputs.runner_label }}] + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] outputs: ref: ${{ steps.vars.outputs.ref }} tag: ${{ steps.vars.outputs.tag }} steps: - id: vars run: | - echo "ref=${{ inputs.ref }}" >> "$GITHUB_OUTPUT" + echo "ref=${{ github.event.inputs.ref }}" >> "$GITHUB_OUTPUT" echo "tag=dryrun-${{ github.run_id }}" >> "$GITHUB_OUTPUT" artifacts: name: Node • ${{ matrix.runtime }} • amd64 needs: setup - if: ${{ inputs.bench_job_key == 'docker' || inputs.bench_job_key == matrix.key }} + if: ${{ github.event.inputs.bench_job_key == 'docker' || github.event.inputs.bench_job_key == matrix.key }} strategy: fail-fast: false matrix: @@ -56,7 +56,7 @@ jobs: key: artifacts-fast-runtime - runtime: non-fast-runtime key: artifacts-non-fast-runtime - runs-on: [self-hosted, ${{ inputs.runner_label }}] + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] timeout-minutes: 120 env: CARGO_BUILD_JOBS: 6 @@ -105,9 +105,9 @@ jobs: if-no-files-found: error docker: - if: ${{ inputs.bench_job_key == 'docker' }} + if: ${{ github.event.inputs.bench_job_key == 'docker' }} needs: [setup, artifacts] - runs-on: [self-hosted, ${{ inputs.runner_label }}] + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] timeout-minutes: 90 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/bench-fireactions-light-dryrun.yml b/.github/workflows/bench-fireactions-light-dryrun.yml index 53beb26187..d07f4a1625 100644 --- a/.github/workflows/bench-fireactions-light-dryrun.yml +++ b/.github/workflows/bench-fireactions-light-dryrun.yml @@ -25,10 +25,10 @@ on: required: false default: "2483" -run-name: bench-fireactions-light | ${{ inputs.sweep_id }} | ${{ inputs.bench_job_key }} | ${{ inputs.runner_label }} | rep-${{ inputs.rep }} +run-name: bench-fireactions-light | ${{ github.event.inputs.sweep_id }} | ${{ github.event.inputs.bench_job_key }} | ${{ github.event.inputs.runner_label }} | rep-${{ github.event.inputs.rep }} concurrency: - group: bench-fireactions-light-${{ inputs.sweep_id }}-${{ inputs.bench_job_key }}-${{ inputs.runner_label }}-rep-${{ inputs.rep }} + group: bench-fireactions-light-${{ github.event.inputs.sweep_id }}-${{ github.event.inputs.bench_job_key }}-${{ github.event.inputs.runner_label }}-rep-${{ github.event.inputs.rep }} cancel-in-progress: false permissions: @@ -39,13 +39,13 @@ permissions: jobs: smoke: - if: ${{ inputs.bench_job_key == 'smoke' }} - runs-on: [self-hosted, ${{ inputs.runner_label }}] + if: ${{ github.event.inputs.bench_job_key == 'smoke' }} + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] timeout-minutes: 30 steps: - uses: actions/checkout@v4 with: - ref: ${{ inputs.ref }} + ref: ${{ github.event.inputs.ref }} - name: Verify required tools run: | set -euo pipefail @@ -65,13 +65,13 @@ jobs: docker run --rm hello-world:latest noinstall-probes: - if: ${{ inputs.bench_job_key == 'probes' }} - runs-on: [self-hosted, ${{ inputs.runner_label }}] + if: ${{ github.event.inputs.bench_job_key == 'probes' }} + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] timeout-minutes: 20 steps: - uses: actions/checkout@v4 with: - ref: ${{ inputs.ref }} + ref: ${{ github.event.inputs.ref }} - name: Probe runner dependencies run: | set +e @@ -88,8 +88,8 @@ jobs: [ "$REQUIRED_MISSING" -eq 0 ] update-chainspecs-dryrun: - if: ${{ inputs.bench_job_key == 'update-chainspecs-dryrun' }} - runs-on: [self-hosted, ${{ inputs.runner_label }}] + if: ${{ github.event.inputs.bench_job_key == 'update-chainspecs-dryrun' }} + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] timeout-minutes: 120 env: CARGO_TERM_COLOR: always @@ -98,7 +98,7 @@ jobs: steps: - uses: actions/checkout@v4 with: - ref: ${{ inputs.ref }} + ref: ${{ github.event.inputs.ref }} - name: Dependency gate run: | set -euo pipefail @@ -114,15 +114,15 @@ jobs: - run: ./scripts/build_all_chainspecs.sh build-docs-dryrun: - if: ${{ inputs.bench_job_key == 'build-docs-dryrun' }} - runs-on: [self-hosted, ${{ inputs.runner_label }}] + if: ${{ github.event.inputs.bench_job_key == 'build-docs-dryrun' }} + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] timeout-minutes: 90 env: CARGO_BUILD_JOBS: 4 steps: - uses: actions/checkout@v4 with: - ref: ${{ inputs.ref }} + ref: ${{ github.event.inputs.ref }} - name: Dependency gate run: | set -euo pipefail @@ -140,13 +140,13 @@ jobs: args: --document-private-items publish-dryrun: - if: ${{ inputs.bench_job_key == 'publish-dryrun' }} - runs-on: [self-hosted, ${{ inputs.runner_label }}] + if: ${{ github.event.inputs.bench_job_key == 'publish-dryrun' }} + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] timeout-minutes: 45 steps: - uses: actions/checkout@v4 with: - ref: ${{ inputs.ref }} + ref: ${{ github.event.inputs.ref }} - name: Dependency gate run: | set -euo pipefail @@ -165,13 +165,13 @@ jobs: tags: ghcr.io/${{ github.repository }}:dryrun-${{ github.run_id }} apply-dryrun: - if: ${{ inputs.bench_job_key == 'apply-dryrun' }} - runs-on: [self-hosted, ${{ inputs.runner_label }}] + if: ${{ github.event.inputs.bench_job_key == 'apply-dryrun' }} + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] timeout-minutes: 30 steps: - uses: actions/checkout@v4 with: - ref: ${{ inputs.ref }} + ref: ${{ github.event.inputs.ref }} - name: Dependency gate run: | set -euo pipefail @@ -179,11 +179,11 @@ jobs: command -v "$cmd" done - name: Download latest bench patch artifact from benchmark workflow - if: ${{ inputs.pr_number != '' }} + if: ${{ github.event.inputs.pr_number != '' }} uses: dawidd6/action-download-artifact@v3 with: workflow: run-benchmarks.yml - pr: ${{ inputs.pr_number }} + pr: ${{ github.event.inputs.pr_number }} name: bench-patch path: . allow_forks: true @@ -206,13 +206,13 @@ jobs: fi payload-dryrun: - if: ${{ inputs.bench_job_key == 'payload-dryrun' }} - runs-on: [self-hosted, ${{ inputs.runner_label }}] + if: ${{ github.event.inputs.bench_job_key == 'payload-dryrun' }} + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] timeout-minutes: 20 steps: - uses: actions/checkout@v4 with: - ref: ${{ inputs.ref }} + ref: ${{ github.event.inputs.ref }} - name: Dependency gate run: | set -euo pipefail diff --git a/.github/workflows/bench-try-runtime.yml b/.github/workflows/bench-try-runtime.yml index 980c1ad0c0..5d44ad69a4 100644 --- a/.github/workflows/bench-try-runtime.yml +++ b/.github/workflows/bench-try-runtime.yml @@ -21,10 +21,10 @@ on: required: true default: check-finney -run-name: bench-try-runtime | ${{ inputs.sweep_id }} | ${{ inputs.bench_job_key }} | ${{ inputs.runner_label }} | rep-${{ inputs.rep }} +run-name: bench-try-runtime | ${{ github.event.inputs.sweep_id }} | ${{ github.event.inputs.bench_job_key }} | ${{ github.event.inputs.runner_label }} | rep-${{ github.event.inputs.rep }} concurrency: - group: bench-try-runtime-${{ inputs.sweep_id }}-${{ inputs.bench_job_key }}-${{ inputs.runner_label }}-rep-${{ inputs.rep }} + group: bench-try-runtime-${{ github.event.inputs.sweep_id }}-${{ github.event.inputs.bench_job_key }}-${{ github.event.inputs.runner_label }}-rep-${{ github.event.inputs.rep }} cancel-in-progress: false env: @@ -32,15 +32,15 @@ env: jobs: check-devnet: - if: ${{ inputs.bench_job_key == 'check-devnet' }} + if: ${{ github.event.inputs.bench_job_key == 'check-devnet' }} name: check devnet - runs-on: [self-hosted, ${{ inputs.runner_label }}] + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] env: CARGO_BUILD_JOBS: 6 steps: - uses: actions/checkout@v4 with: - ref: ${{ inputs.ref }} + ref: ${{ github.event.inputs.ref }} - name: Install dependencies run: | sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update @@ -59,15 +59,15 @@ jobs: extra-args: --disable-spec-version-check --no-weight-warnings check-testnet: - if: ${{ inputs.bench_job_key == 'check-testnet' }} + if: ${{ github.event.inputs.bench_job_key == 'check-testnet' }} name: check testnet - runs-on: [self-hosted, ${{ inputs.runner_label }}] + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] env: CARGO_BUILD_JOBS: 6 steps: - uses: actions/checkout@v4 with: - ref: ${{ inputs.ref }} + ref: ${{ github.event.inputs.ref }} - name: Install dependencies run: | sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update @@ -86,15 +86,15 @@ jobs: extra-args: --disable-spec-version-check --no-weight-warnings check-finney: - if: ${{ inputs.bench_job_key == 'check-finney' }} + if: ${{ github.event.inputs.bench_job_key == 'check-finney' }} name: check finney - runs-on: [self-hosted, ${{ inputs.runner_label }}] + runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] env: CARGO_BUILD_JOBS: 6 steps: - uses: actions/checkout@v4 with: - ref: ${{ inputs.ref }} + ref: ${{ github.event.inputs.ref }} - name: Install dependencies run: | sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update From 3eccbcfa50e1830b69df34a64c7ac33f28ab6f77 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Wed, 4 Mar 2026 23:11:18 +0100 Subject: [PATCH 11/62] ci: trigger node-compat on pr synchronize --- .github/workflows/check-node-compat.yml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/workflows/check-node-compat.yml b/.github/workflows/check-node-compat.yml index 100f21da7e..b1617e4419 100644 --- a/.github/workflows/check-node-compat.yml +++ b/.github/workflows/check-node-compat.yml @@ -2,7 +2,7 @@ name: Check Node Compat on: pull_request: - types: [labeled] + types: [labeled, synchronize, opened, reopened] branches: [devnet-ready] concurrency: @@ -11,19 +11,22 @@ concurrency: env: CARGO_TERM_COLOR: always + CARGO_BUILD_JOBS: 4 jobs: build: name: build ${{ matrix.version.name }} - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-highmem] if: contains(github.event.pull_request.labels.*.name, 'check-node-compat') env: RUST_BACKTRACE: full strategy: matrix: version: - - { name: old, ref: devnet-ready } - - { name: new, ref: ${{ github.head_ref }} } + - name: old + ref: "devnet-ready" + - name: new + ref: ${{ github.head_ref }} steps: - name: Install dependencies @@ -60,7 +63,7 @@ jobs: test: needs: [build] - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-standard] steps: - name: Download old node binary uses: actions/download-artifact@v4 @@ -85,4 +88,4 @@ jobs: - name: Run test working-directory: ${{ github.workspace }}/.github/workflows/check-node-compat - run: npm run test \ No newline at end of file + run: npm run test From bb37d19f94c38d2568f125cb4bb5a42c8afc7373 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Wed, 4 Mar 2026 23:11:49 +0100 Subject: [PATCH 12/62] ci: include devnet-ready in spec check workflows for benchmarks --- .github/workflows/check-finney.yml | 5 +++-- .github/workflows/check-testnet.yml | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/check-finney.yml b/.github/workflows/check-finney.yml index 9596665761..26623d045a 100644 --- a/.github/workflows/check-finney.yml +++ b/.github/workflows/check-finney.yml @@ -2,7 +2,7 @@ name: Finney Deploy Check on: pull_request: - branches: [finney, main] + branches: [finney, main, devnet-ready] types: [labeled, unlabeled, synchronize, opened] concurrency: @@ -11,11 +11,12 @@ concurrency: env: CARGO_TERM_COLOR: always + CARGO_BUILD_JOBS: 4 jobs: check-spec-version: name: Check spec_version bump - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-standard] if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-spec-version-bump') }} steps: - name: Dependencies diff --git a/.github/workflows/check-testnet.yml b/.github/workflows/check-testnet.yml index 45a8f1207a..5827bc5114 100644 --- a/.github/workflows/check-testnet.yml +++ b/.github/workflows/check-testnet.yml @@ -2,7 +2,7 @@ name: Testnet Deploy Check on: pull_request: - branches: [testnet, testnet-ready] + branches: [testnet, testnet-ready, devnet-ready] types: [labeled, unlabeled, synchronize, opened] concurrency: @@ -11,11 +11,12 @@ concurrency: env: CARGO_TERM_COLOR: always + CARGO_BUILD_JOBS: 4 jobs: check-spec-version: name: Check spec_version bump - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-standard] if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-spec-version-bump') }} steps: - name: Dependencies From c527800d27eaca949f6dbd66fbba952b6d6b6ba4 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Wed, 4 Mar 2026 23:12:42 +0100 Subject: [PATCH 13/62] ci: remove temporary bench workflows --- .github/workflows/bench-cargo-audit.yml | 60 ----- .github/workflows/bench-check-docker.yml | 40 --- .github/workflows/bench-check-node-compat.yml | 98 -------- .github/workflows/bench-check-rust.yml | 230 ------------------ .../workflows/bench-check-spec-version.yml | 74 ------ .github/workflows/bench-contract-tests.yml | 66 ----- ...nch-fireactions-docker-localnet-dryrun.yml | 138 ----------- .../bench-fireactions-light-dryrun.yml | 229 ----------------- .github/workflows/bench-try-runtime.yml | 114 --------- 9 files changed, 1049 deletions(-) delete mode 100644 .github/workflows/bench-cargo-audit.yml delete mode 100644 .github/workflows/bench-check-docker.yml delete mode 100644 .github/workflows/bench-check-node-compat.yml delete mode 100644 .github/workflows/bench-check-rust.yml delete mode 100644 .github/workflows/bench-check-spec-version.yml delete mode 100644 .github/workflows/bench-contract-tests.yml delete mode 100644 .github/workflows/bench-fireactions-docker-localnet-dryrun.yml delete mode 100644 .github/workflows/bench-fireactions-light-dryrun.yml delete mode 100644 .github/workflows/bench-try-runtime.yml diff --git a/.github/workflows/bench-cargo-audit.yml b/.github/workflows/bench-cargo-audit.yml deleted file mode 100644 index bbadee01b3..0000000000 --- a/.github/workflows/bench-cargo-audit.yml +++ /dev/null @@ -1,60 +0,0 @@ -name: Bench Cargo Audit - -on: - workflow_dispatch: - inputs: - ref: - description: Branch or tag to benchmark - required: true - default: fireactions-runners - runner_label: - description: Fireactions benchmark label - required: true - sweep_id: - description: Sweep identifier - required: true - rep: - description: Repetition number - required: true - bench_job_key: - description: Job selector - required: true - default: cargo-audit - -run-name: bench-cargo-audit | ${{ github.event.inputs.sweep_id }} | ${{ github.event.inputs.bench_job_key }} | ${{ github.event.inputs.runner_label }} | rep-${{ github.event.inputs.rep }} - -concurrency: - group: bench-cargo-audit-${{ github.event.inputs.sweep_id }}-${{ github.event.inputs.runner_label }}-rep-${{ github.event.inputs.rep }} - cancel-in-progress: false - -jobs: - cargo-audit: - if: ${{ github.event.inputs.bench_job_key == 'cargo-audit' }} - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - env: - CARGO_BUILD_JOBS: 4 - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.ref }} - - name: Install dependencies - run: | - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl libssl-dev llvm libudev-dev protobuf-compiler pkg-config - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - - uses: Swatinem/rust-cache@v2 - with: - key: bench-cargo-audit - cache-on-failure: true - - run: cargo install --force cargo-audit - - run: cargo audit --version - - name: cargo audit - run: | - cargo audit --ignore RUSTSEC-2023-0091 \ - --ignore RUSTSEC-2024-0438 \ - --ignore RUSTSEC-2025-0009 \ - --ignore RUSTSEC-2025-0055 \ - --ignore RUSTSEC-2025-0073 \ - --ignore RUSTSEC-2025-0118 diff --git a/.github/workflows/bench-check-docker.yml b/.github/workflows/bench-check-docker.yml deleted file mode 100644 index 4f222edc91..0000000000 --- a/.github/workflows/bench-check-docker.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Bench Check Docker - -on: - workflow_dispatch: - inputs: - ref: - description: Branch or tag to benchmark - required: true - default: fireactions-runners - runner_label: - description: Fireactions benchmark label - required: true - sweep_id: - description: Sweep identifier - required: true - rep: - description: Repetition number - required: true - bench_job_key: - description: Job selector - required: true - default: build - -run-name: bench-check-docker | ${{ github.event.inputs.sweep_id }} | ${{ github.event.inputs.bench_job_key }} | ${{ github.event.inputs.runner_label }} | rep-${{ github.event.inputs.rep }} - -concurrency: - group: bench-check-docker-${{ github.event.inputs.sweep_id }}-${{ github.event.inputs.runner_label }}-rep-${{ github.event.inputs.rep }} - cancel-in-progress: false - -jobs: - build: - if: ${{ github.event.inputs.bench_job_key == 'build' }} - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.ref }} - - uses: docker/setup-qemu-action@v2 - - uses: docker/setup-buildx-action@v2 - - run: docker build . diff --git a/.github/workflows/bench-check-node-compat.yml b/.github/workflows/bench-check-node-compat.yml deleted file mode 100644 index b52693b339..0000000000 --- a/.github/workflows/bench-check-node-compat.yml +++ /dev/null @@ -1,98 +0,0 @@ -name: Bench Check Node Compat - -on: - workflow_dispatch: - inputs: - ref: - description: Branch or tag to benchmark - required: true - default: fireactions-runners - runner_label: - description: Fireactions benchmark label - required: true - sweep_id: - description: Sweep identifier - required: true - rep: - description: Repetition number - required: true - bench_job_key: - description: Job selector (build or test) - required: true - default: build - -run-name: bench-check-node-compat | ${{ github.event.inputs.sweep_id }} | ${{ github.event.inputs.bench_job_key }} | ${{ github.event.inputs.runner_label }} | rep-${{ github.event.inputs.rep }} - -concurrency: - group: bench-check-node-compat-${{ github.event.inputs.sweep_id }}-${{ github.event.inputs.bench_job_key }}-${{ github.event.inputs.runner_label }}-rep-${{ github.event.inputs.rep }} - cancel-in-progress: false - -env: - CARGO_TERM_COLOR: always - CARGO_BUILD_JOBS: 4 - -jobs: - build: - if: ${{ github.event.inputs.bench_job_key == 'build' || github.event.inputs.bench_job_key == 'test' }} - name: build ${{ matrix.version.name }} - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - env: - RUST_BACKTRACE: full - strategy: - matrix: - version: - - name: old - ref: devnet-ready - - name: new - ref: ${{ github.event.inputs.ref }} - steps: - - name: Install dependencies - run: | - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl git make libssl-dev llvm libudev-dev protobuf-compiler pkg-config unzip - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - - uses: Swatinem/rust-cache@v2 - with: - key: bench-check-node-compat-${{ matrix.version.name }} - - name: Checkout ${{ matrix.version.name }} - uses: actions/checkout@v4 - with: - ref: ${{ matrix.version.ref }} - path: ${{ matrix.version.name }} - - name: Build ${{ matrix.version.name }} - working-directory: ${{ matrix.version.name }} - run: cargo build --release --locked - - name: Upload ${{ matrix.version.name }} node binary - uses: actions/upload-artifact@v4 - with: - name: node-subtensor-${{ matrix.version.name }} - path: ${{ matrix.version.name }}/target/release/node-subtensor - retention-days: 1 - - test: - if: ${{ github.event.inputs.bench_job_key == 'test' }} - needs: [build] - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - steps: - - uses: actions/download-artifact@v4 - with: - name: node-subtensor-old - path: /tmp/node-subtensor-old - - uses: actions/download-artifact@v4 - with: - name: node-subtensor-new - path: /tmp/node-subtensor-new - - uses: actions/setup-node@v4 - with: - node-version: "24" - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.ref }} - - name: Install npm dependencies - working-directory: ${{ github.workspace }}/.github/workflows/check-node-compat - run: npm install - - name: Run test - working-directory: ${{ github.workspace }}/.github/workflows/check-node-compat - run: npm run test diff --git a/.github/workflows/bench-check-rust.yml b/.github/workflows/bench-check-rust.yml deleted file mode 100644 index ebb1708eec..0000000000 --- a/.github/workflows/bench-check-rust.yml +++ /dev/null @@ -1,230 +0,0 @@ -name: Bench Check Rust - -on: - workflow_dispatch: - inputs: - ref: - description: Branch or tag to benchmark - required: true - default: fireactions-runners - runner_label: - description: Fireactions benchmark label - required: true - sweep_id: - description: Sweep identifier - required: true - rep: - description: Repetition number - required: true - bench_job_key: - description: Job selector - required: true - default: cargo-test - -run-name: bench-check-rust | ${{ github.event.inputs.sweep_id }} | ${{ github.event.inputs.bench_job_key }} | ${{ github.event.inputs.runner_label }} | rep-${{ github.event.inputs.rep }} - -concurrency: - group: bench-check-rust-${{ github.event.inputs.sweep_id }}-${{ github.event.inputs.bench_job_key }}-${{ github.event.inputs.runner_label }}-rep-${{ github.event.inputs.rep }} - cancel-in-progress: false - -env: - CARGO_TERM_COLOR: always - -jobs: - cargo-fmt: - if: ${{ github.event.inputs.bench_job_key == 'cargo-fmt' }} - name: cargo fmt - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - env: - RUST_BACKTRACE: full - CARGO_BUILD_JOBS: 2 - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.ref }} - - name: Install dependencies - run: | - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - components: rustfmt - - uses: Swatinem/rust-cache@v2 - with: - key: bench-cargo-fmt - cache-on-failure: true - - name: cargo fmt - run: | - set -euo pipefail - output=$(cargo fmt --check --all 2>&1) || { - echo "$output" - exit 1 - } - if echo "$output" | grep -qiE "(the compiler unexpectedly panicked|panicked at|Internal Compiler Error|ICE|error: the compiler unexpectedly panicked)"; then - echo "$output" - exit 1 - fi - echo "$output" - - cargo-clippy-default-features: - if: ${{ github.event.inputs.bench_job_key == 'cargo-clippy' }} - name: cargo clippy - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - env: - RUST_BACKTRACE: full - SKIP_WASM_BUILD: 1 - CARGO_BUILD_JOBS: 6 - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.ref }} - - name: Install dependencies - run: | - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl git make libssl-dev llvm libudev-dev protobuf-compiler pkg-config - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - components: clippy - - uses: Swatinem/rust-cache@v2 - with: - key: bench-clippy-default-features - cache-on-failure: true - - run: cargo clippy --workspace --all-targets -- -D warnings - - cargo-check-lints: - if: ${{ github.event.inputs.bench_job_key == 'cargo-check-lints' }} - name: check custom lints - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - env: - RUSTFLAGS: -D warnings - RUST_BACKTRACE: full - SKIP_WASM_BUILD: 1 - CARGO_BUILD_JOBS: 4 - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.ref }} - - name: Install dependencies - run: | - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl git make libssl-dev llvm libudev-dev protobuf-compiler pkg-config - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - - uses: Swatinem/rust-cache@v2 - with: - key: bench-lints - cache-on-failure: true - - name: check lints - run: | - set -o pipefail - cargo check 2>&1 | sed -r "s/\x1B\[[0-9;]*[mK]//g" | grep "warning:" && exit 1 - echo "No warnings found." - - cargo-clippy-all-features: - if: ${{ github.event.inputs.bench_job_key == 'cargo-clippy-all-features' }} - name: cargo clippy --all-features - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - env: - RUST_BACKTRACE: full - SKIP_WASM_BUILD: 1 - CARGO_BUILD_JOBS: 6 - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.ref }} - - name: Install dependencies - run: | - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl git make libssl-dev llvm libudev-dev protobuf-compiler pkg-config - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - components: clippy - - uses: Swatinem/rust-cache@v2 - with: - key: bench-clippy-all-features - cache-on-failure: true - - run: cargo clippy --workspace --all-targets --all-features -- -D warnings - - cargo-test: - if: ${{ github.event.inputs.bench_job_key == 'cargo-test' }} - name: cargo test - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - env: - RUST_BACKTRACE: full - SKIP_WASM_BUILD: 1 - CARGO_BUILD_JOBS: 6 - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.ref }} - - name: Install dependencies - run: | - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl git make libssl-dev llvm libudev-dev protobuf-compiler pkg-config - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - - uses: Swatinem/rust-cache@v2 - with: - key: bench-cargo-test - cache-on-failure: true - - run: cargo test --workspace --all-features - - cargo-fix: - if: ${{ github.event.inputs.bench_job_key == 'cargo-fix' }} - name: cargo fix - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - env: - RUST_BACKTRACE: full - SKIP_WASM_BUILD: 1 - CARGO_BUILD_JOBS: 6 - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.ref }} - - name: Install dependencies - run: | - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl git make libssl-dev llvm libudev-dev protobuf-compiler pkg-config - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - - uses: Swatinem/rust-cache@v2 - with: - key: bench-cargo-fix - cache-on-failure: true - - name: cargo fix --workspace - run: | - cargo fix --workspace - if ! git diff --exit-code; then - echo "There are local changes after running cargo fix --workspace" - exit 1 - fi - - check-feature-propagation: - if: ${{ github.event.inputs.bench_job_key == 'check-feature-propagation' }} - name: zepter run check - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - env: - CARGO_BUILD_JOBS: 4 - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - ref: ${{ github.event.inputs.ref }} - - name: Install dependencies - run: | - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl libssl-dev llvm libudev-dev protobuf-compiler pkg-config - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - - uses: Swatinem/rust-cache@v2 - - uses: taiki-e/install-action@v2 - with: - tool: zepter - - run: zepter run check diff --git a/.github/workflows/bench-check-spec-version.yml b/.github/workflows/bench-check-spec-version.yml deleted file mode 100644 index 1091a655b2..0000000000 --- a/.github/workflows/bench-check-spec-version.yml +++ /dev/null @@ -1,74 +0,0 @@ -name: Bench Check Spec Version - -on: - workflow_dispatch: - inputs: - ref: - description: Branch or tag to benchmark - required: true - default: fireactions-runners - runner_label: - description: Fireactions benchmark label - required: true - sweep_id: - description: Sweep identifier - required: true - rep: - description: Repetition number - required: true - bench_job_key: - description: Job selector (check-devnet, check-finney, check-testnet) - required: true - default: check-devnet - -run-name: bench-check-spec-version | ${{ github.event.inputs.sweep_id }} | ${{ github.event.inputs.bench_job_key }} | ${{ github.event.inputs.runner_label }} | rep-${{ github.event.inputs.rep }} - -concurrency: - group: bench-check-spec-version-${{ github.event.inputs.sweep_id }}-${{ github.event.inputs.bench_job_key }}-${{ github.event.inputs.runner_label }}-rep-${{ github.event.inputs.rep }} - cancel-in-progress: false - -env: - CARGO_TERM_COLOR: always - CARGO_BUILD_JOBS: 4 - -jobs: - check-spec-version: - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - steps: - - name: Resolve target network URI - id: net - run: | - case "${{ github.event.inputs.bench_job_key }}" in - check-devnet) echo "uri=wss://dev.chain.opentensor.ai:443" >> "$GITHUB_OUTPUT" ;; - check-finney) echo "uri=wss://entrypoint-finney.opentensor.ai:443" >> "$GITHUB_OUTPUT" ;; - check-testnet) echo "uri=wss://test.finney.opentensor.ai:443" >> "$GITHUB_OUTPUT" ;; - *) echo "Unsupported bench_job_key: ${{ github.event.inputs.bench_job_key }}"; exit 1 ;; - esac - - name: Dependencies - run: | - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl libssl-dev llvm libudev-dev protobuf-compiler pkg-config bc - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.ref }} - - uses: Swatinem/rust-cache@v2 - with: - key: bench-spec-version - cache-on-failure: true - save-if: true - - run: cargo install substrate-spec-version - - name: Check that spec_version has been bumped - run: | - spec_version=$(PATH=$PATH:$HOME/.cargo/.bin substrate-spec-version "${{ steps.net.outputs.uri }}" | tr -d '\n') - echo "network spec_version: $spec_version" - : ${spec_version:?bad spec version} - local_spec_version=$(cargo run -p subtensor-tools --bin spec-version | tr -d '\n') - echo "local spec_version: $local_spec_version" - if (( $(echo "$local_spec_version <= $spec_version" | bc -l) )); then - echo "$local_spec_version <= $spec_version ❌" - exit 1 - fi - echo "$local_spec_version > $spec_version ✅" diff --git a/.github/workflows/bench-contract-tests.yml b/.github/workflows/bench-contract-tests.yml deleted file mode 100644 index 3e493cd9e1..0000000000 --- a/.github/workflows/bench-contract-tests.yml +++ /dev/null @@ -1,66 +0,0 @@ -name: Bench Contract Tests - -on: - workflow_dispatch: - inputs: - ref: - description: Branch or tag to benchmark - required: true - default: fireactions-runners - runner_label: - description: Fireactions benchmark label - required: true - sweep_id: - description: Sweep identifier - required: true - rep: - description: Repetition number - required: true - bench_job_key: - description: Job selector - required: true - default: run - -run-name: bench-contract-tests | ${{ github.event.inputs.sweep_id }} | ${{ github.event.inputs.bench_job_key }} | ${{ github.event.inputs.runner_label }} | rep-${{ github.event.inputs.rep }} - -concurrency: - group: bench-contract-tests-${{ github.event.inputs.sweep_id }}-${{ github.event.inputs.runner_label }}-rep-${{ github.event.inputs.rep }} - cancel-in-progress: false - -env: - CARGO_TERM_COLOR: always - -permissions: - contents: read - -jobs: - run: - if: ${{ github.event.inputs.bench_job_key == 'run' }} - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - env: - RUST_BACKTRACE: full - CARGO_BUILD_JOBS: 6 - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.ref }} - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - - uses: Swatinem/rust-cache@v2 - - uses: actions/setup-node@v4 - with: - node-version: "22" - - name: Install dependencies - run: | - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl libssl-dev llvm libudev-dev protobuf-compiler nodejs pkg-config - - uses: nick-fields/retry@v3 - with: - timeout_minutes: 120 - max_attempts: 3 - retry_wait_seconds: 60 - command: | - cd ${{ github.workspace }} - npm install --global yarn - ./contract-tests/run-ci.sh diff --git a/.github/workflows/bench-fireactions-docker-localnet-dryrun.yml b/.github/workflows/bench-fireactions-docker-localnet-dryrun.yml deleted file mode 100644 index 93498aaa6a..0000000000 --- a/.github/workflows/bench-fireactions-docker-localnet-dryrun.yml +++ /dev/null @@ -1,138 +0,0 @@ -name: Bench Fireactions Docker Localnet Dry-Run - -on: - workflow_dispatch: - inputs: - ref: - description: Branch or tag to benchmark - required: true - default: fireactions-runners - runner_label: - description: Fireactions benchmark label - required: true - sweep_id: - description: Sweep identifier - required: true - rep: - description: Repetition number - required: true - bench_job_key: - description: Job selector (artifacts-fast-runtime, artifacts-non-fast-runtime, docker) - required: true - default: artifacts-fast-runtime - -run-name: bench-docker-localnet | ${{ github.event.inputs.sweep_id }} | ${{ github.event.inputs.bench_job_key }} | ${{ github.event.inputs.runner_label }} | rep-${{ github.event.inputs.rep }} - -concurrency: - group: bench-docker-localnet-${{ github.event.inputs.sweep_id }}-${{ github.event.inputs.bench_job_key }}-${{ github.event.inputs.runner_label }}-rep-${{ github.event.inputs.rep }} - cancel-in-progress: false - -permissions: - contents: read - actions: read - packages: read - -jobs: - setup: - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - outputs: - ref: ${{ steps.vars.outputs.ref }} - tag: ${{ steps.vars.outputs.tag }} - steps: - - id: vars - run: | - echo "ref=${{ github.event.inputs.ref }}" >> "$GITHUB_OUTPUT" - echo "tag=dryrun-${{ github.run_id }}" >> "$GITHUB_OUTPUT" - - artifacts: - name: Node • ${{ matrix.runtime }} • amd64 - needs: setup - if: ${{ github.event.inputs.bench_job_key == 'docker' || github.event.inputs.bench_job_key == matrix.key }} - strategy: - fail-fast: false - matrix: - include: - - runtime: fast-runtime - key: artifacts-fast-runtime - - runtime: non-fast-runtime - key: artifacts-non-fast-runtime - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - timeout-minutes: 120 - env: - CARGO_BUILD_JOBS: 6 - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ needs.setup.outputs.ref }} - - name: Dependency gate - run: | - set -euo pipefail - for cmd in docker clang pkg-config protoc; do - command -v "$cmd" - done - pkg-config --exists openssl - pkg-config --exists libudev - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: 1.88.0 - - run: rustup target add x86_64-unknown-linux-gnu - - name: Patch limits for local run - run: | - chmod +x ./scripts/localnet_patch.sh - ./scripts/localnet_patch.sh - - name: Build binaries - run: | - export PATH="$HOME/.cargo/bin:$PATH" - export CARGO_BUILD_TARGET="x86_64-unknown-linux-gnu" - if [ "${{ matrix.runtime }}" = "fast-runtime" ]; then - ./scripts/localnet.sh --build-only - else - ./scripts/localnet.sh False --build-only - fi - - name: Prepare artifacts for upload - run: | - RUNTIME="${{ matrix.runtime }}" - TRIPLE="x86_64-unknown-linux-gnu" - mkdir -p build/ci_target/${RUNTIME}/${TRIPLE}/release/ - cp -v target/${RUNTIME}/${TRIPLE}/release/node-subtensor build/ci_target/${RUNTIME}/${TRIPLE}/release/ - mkdir -p build/ci_target/${RUNTIME}/${TRIPLE}/release/wbuild/node-subtensor-runtime/ - cp -v target/${RUNTIME}/${TRIPLE}/release/wbuild/node-subtensor-runtime/node_subtensor_runtime.compact.compressed.wasm build/ci_target/${RUNTIME}/${TRIPLE}/release/wbuild/node-subtensor-runtime/ - - uses: actions/upload-artifact@v4 - with: - name: dryrun-binaries-x86_64-unknown-linux-gnu-${{ matrix.runtime }} - path: build/ - if-no-files-found: error - - docker: - if: ${{ github.event.inputs.bench_job_key == 'docker' }} - needs: [setup, artifacts] - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - timeout-minutes: 90 - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ needs.setup.outputs.ref }} - - uses: actions/download-artifact@v5 - with: - pattern: dryrun-binaries-* - path: build/ - merge-multiple: true - - name: Dependency gate - run: | - set -euo pipefail - command -v docker - docker version - - uses: docker/setup-buildx-action@v3 - with: - driver: docker - - uses: docker/build-push-action@v6 - with: - context: . - file: Dockerfile-localnet - build-args: | - BUILT_IN_CI="Boom shakalaka" - push: false - load: false - platforms: linux/amd64 - tags: ghcr.io/${{ github.repository }}-localnet:${{ needs.setup.outputs.tag }} diff --git a/.github/workflows/bench-fireactions-light-dryrun.yml b/.github/workflows/bench-fireactions-light-dryrun.yml deleted file mode 100644 index d07f4a1625..0000000000 --- a/.github/workflows/bench-fireactions-light-dryrun.yml +++ /dev/null @@ -1,229 +0,0 @@ -name: Bench Fireactions Light Dry-Run - -on: - workflow_dispatch: - inputs: - ref: - description: Branch or tag to benchmark - required: true - default: fireactions-runners - runner_label: - description: Fireactions benchmark label - required: true - sweep_id: - description: Sweep identifier - required: true - rep: - description: Repetition number - required: true - bench_job_key: - description: Job selector - required: true - default: smoke - pr_number: - description: Optional PR number for artifact fetch tests - required: false - default: "2483" - -run-name: bench-fireactions-light | ${{ github.event.inputs.sweep_id }} | ${{ github.event.inputs.bench_job_key }} | ${{ github.event.inputs.runner_label }} | rep-${{ github.event.inputs.rep }} - -concurrency: - group: bench-fireactions-light-${{ github.event.inputs.sweep_id }}-${{ github.event.inputs.bench_job_key }}-${{ github.event.inputs.runner_label }}-rep-${{ github.event.inputs.rep }} - cancel-in-progress: false - -permissions: - contents: read - actions: read - pull-requests: read - packages: read - -jobs: - smoke: - if: ${{ github.event.inputs.bench_job_key == 'smoke' }} - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - timeout-minutes: 30 - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.ref }} - - name: Verify required tools - run: | - set -euo pipefail - for cmd in docker gh jq git curl unzip bc; do - command -v "$cmd" - done - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - - name: Verify Rust toolchain - run: | - rustc --version - cargo --version - - name: Run Docker smoke test - run: | - docker pull hello-world:latest - docker run --rm hello-world:latest - - noinstall-probes: - if: ${{ github.event.inputs.bench_job_key == 'probes' }} - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - timeout-minutes: 20 - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.ref }} - - name: Probe runner dependencies - run: | - set +e - REQUIRED_MISSING=0 - for cmd in docker gh jq git curl unzip bc make clang pkg-config protoc llvm-config node npm; do - command -v "$cmd" >/dev/null 2>&1 || REQUIRED_MISSING=$((REQUIRED_MISSING+1)) - done - docker buildx version >/dev/null 2>&1 || REQUIRED_MISSING=$((REQUIRED_MISSING+1)) - docker compose version >/dev/null 2>&1 || REQUIRED_MISSING=$((REQUIRED_MISSING+1)) - pkg-config --exists openssl || REQUIRED_MISSING=$((REQUIRED_MISSING+1)) - pkg-config --exists libudev || REQUIRED_MISSING=$((REQUIRED_MISSING+1)) - [ -f /etc/ssl/certs/ca-certificates.crt ] || REQUIRED_MISSING=$((REQUIRED_MISSING+1)) - echo "required_missing=$REQUIRED_MISSING" - [ "$REQUIRED_MISSING" -eq 0 ] - - update-chainspecs-dryrun: - if: ${{ github.event.inputs.bench_job_key == 'update-chainspecs-dryrun' }} - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - timeout-minutes: 120 - env: - CARGO_TERM_COLOR: always - RUST_BACKTRACE: full - CARGO_BUILD_JOBS: 6 - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.ref }} - - name: Dependency gate - run: | - set -euo pipefail - for cmd in clang curl pkg-config llvm-config protoc git; do - command -v "$cmd" - done - pkg-config --exists openssl - pkg-config --exists libudev - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - - uses: Swatinem/rust-cache@v2 - - run: ./scripts/build_all_chainspecs.sh - - build-docs-dryrun: - if: ${{ github.event.inputs.bench_job_key == 'build-docs-dryrun' }} - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - timeout-minutes: 90 - env: - CARGO_BUILD_JOBS: 4 - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.ref }} - - name: Dependency gate - run: | - set -euo pipefail - for cmd in clang curl pkg-config llvm-config protoc; do - command -v "$cmd" - done - pkg-config --exists openssl - pkg-config --exists libudev - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - - uses: actions-rs/cargo@v1 - with: - command: doc - args: --document-private-items - - publish-dryrun: - if: ${{ github.event.inputs.bench_job_key == 'publish-dryrun' }} - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - timeout-minutes: 45 - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.ref }} - - name: Dependency gate - run: | - set -euo pipefail - for cmd in docker git; do - command -v "$cmd" - done - - uses: docker/setup-buildx-action@v3 - with: - driver: docker - - uses: docker/build-push-action@v6 - with: - context: . - push: false - load: false - platforms: linux/amd64 - tags: ghcr.io/${{ github.repository }}:dryrun-${{ github.run_id }} - - apply-dryrun: - if: ${{ github.event.inputs.bench_job_key == 'apply-dryrun' }} - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - timeout-minutes: 30 - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.ref }} - - name: Dependency gate - run: | - set -euo pipefail - for cmd in gh git tar; do - command -v "$cmd" - done - - name: Download latest bench patch artifact from benchmark workflow - if: ${{ github.event.inputs.pr_number != '' }} - uses: dawidd6/action-download-artifact@v3 - with: - workflow: run-benchmarks.yml - pr: ${{ github.event.inputs.pr_number }} - name: bench-patch - path: . - allow_forks: true - check_artifacts: true - search_artifacts: true - workflow_conclusion: "" - if_no_artifact_found: warn - - name: Validate patch apply in dry-run mode - run: | - set -euo pipefail - if [ -f "bench-patch.tgz" ]; then - tar -xzf bench-patch.tgz - elif [ -f "bench-patch/bench-patch.tgz" ]; then - tar -xzf bench-patch/bench-patch.tgz - fi - if [ -f ".bench_patch/benchmark_patch.diff" ]; then - git apply --check ".bench_patch/benchmark_patch.diff" - else - echo "No benchmark patch found" - fi - - payload-dryrun: - if: ${{ github.event.inputs.bench_job_key == 'payload-dryrun' }} - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - timeout-minutes: 20 - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.ref }} - - name: Dependency gate - run: | - set -euo pipefail - for cmd in curl jq; do - command -v "$cmd" - done - - name: Render and validate payloads - run: | - set -euo pipefail - HOTFIX_LABEL_PAYLOAD='{"labels":["hotfix"]}' - echo "$HOTFIX_LABEL_PAYLOAD" | jq -e '.labels | index("hotfix")' >/dev/null - BREAKING_BODY='@opentensor/cerebrum / @opentensor/gyrus / @opentensor/cortex breaking change detected! Please prepare accordingly!' - BREAKING_PAYLOAD="$(jq -n --arg body "$BREAKING_BODY" '{body: $body}')" - echo "$BREAKING_PAYLOAD" | jq -e '.body | length > 0' >/dev/null diff --git a/.github/workflows/bench-try-runtime.yml b/.github/workflows/bench-try-runtime.yml deleted file mode 100644 index 5d44ad69a4..0000000000 --- a/.github/workflows/bench-try-runtime.yml +++ /dev/null @@ -1,114 +0,0 @@ -name: Bench Try Runtime - -on: - workflow_dispatch: - inputs: - ref: - description: Branch or tag to benchmark - required: true - default: fireactions-runners - runner_label: - description: Fireactions benchmark label - required: true - sweep_id: - description: Sweep identifier - required: true - rep: - description: Repetition number - required: true - bench_job_key: - description: Job selector - required: true - default: check-finney - -run-name: bench-try-runtime | ${{ github.event.inputs.sweep_id }} | ${{ github.event.inputs.bench_job_key }} | ${{ github.event.inputs.runner_label }} | rep-${{ github.event.inputs.rep }} - -concurrency: - group: bench-try-runtime-${{ github.event.inputs.sweep_id }}-${{ github.event.inputs.bench_job_key }}-${{ github.event.inputs.runner_label }}-rep-${{ github.event.inputs.rep }} - cancel-in-progress: false - -env: - CARGO_TERM_COLOR: always - -jobs: - check-devnet: - if: ${{ github.event.inputs.bench_job_key == 'check-devnet' }} - name: check devnet - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - env: - CARGO_BUILD_JOBS: 6 - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.ref }} - - name: Install dependencies - run: | - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl git make libssl-dev llvm libudev-dev protobuf-compiler pkg-config unzip - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - - uses: Swatinem/rust-cache@v2 - with: - key: bench-try-runtime - - uses: paritytech/try-runtime-gha@v0.1.0 - with: - runtime-package: node-subtensor-runtime - node-uri: wss://dev.chain.opentensor.ai:443 - checks: all - extra-args: --disable-spec-version-check --no-weight-warnings - - check-testnet: - if: ${{ github.event.inputs.bench_job_key == 'check-testnet' }} - name: check testnet - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - env: - CARGO_BUILD_JOBS: 6 - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.ref }} - - name: Install dependencies - run: | - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl git make libssl-dev llvm libudev-dev protobuf-compiler pkg-config unzip - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - - uses: Swatinem/rust-cache@v2 - with: - key: bench-try-runtime - - uses: paritytech/try-runtime-gha@v0.1.0 - with: - runtime-package: node-subtensor-runtime - node-uri: wss://archive.dev.opentensor.ai:8443 - checks: all - extra-args: --disable-spec-version-check --no-weight-warnings - - check-finney: - if: ${{ github.event.inputs.bench_job_key == 'check-finney' }} - name: check finney - runs-on: [self-hosted, ${{ github.event.inputs.runner_label }}] - env: - CARGO_BUILD_JOBS: 6 - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.ref }} - - name: Install dependencies - run: | - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl git make libssl-dev llvm libudev-dev protobuf-compiler pkg-config unzip - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - - uses: Swatinem/rust-cache@v2 - with: - key: bench-try-runtime - cache-on-failure: true - - uses: paritytech/try-runtime-gha@v0.1.0 - with: - runtime-package: node-subtensor-runtime - node-uri: wss://archive.dev.opentensor.ai:443 - checks: all - extra-args: --disable-spec-version-check --no-weight-warnings From b7227e1a75cdd34dd7e5be9a947648347a05c255 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Wed, 4 Mar 2026 23:22:24 +0100 Subject: [PATCH 14/62] bench-sweep pr2483 sweep=pr2483-commit-20260304T221611Z host=ax102 profile=2c8g rep=1 From 65b4d84a87966eb0e56a799b6cc8182274526c05 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Wed, 4 Mar 2026 23:31:23 +0100 Subject: [PATCH 15/62] bench-sweep pr2483 sweep=pr2483-commit-20260304T222653Z host=ax102 profile=2c8g rep=1 From 10779ec2a9da7dd72979be7ab703a7d6336b31bd Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Wed, 4 Mar 2026 23:37:21 +0100 Subject: [PATCH 16/62] ci: gate benchmark jobs to fireactions-bench label --- .github/workflows/cargo-audit.yml | 4 +++- .../workflows/check-bittensor-e2e-tests.yml | 4 +++- .github/workflows/check-devnet.yml | 3 ++- .github/workflows/check-docker.yml | 2 +- .github/workflows/check-finney.yml | 2 +- .github/workflows/check-node-compat.yml | 4 ++-- .github/workflows/check-rust.yml | 24 ++++++++++++------- .github/workflows/check-testnet.yml | 2 +- .github/workflows/contract-tests.yml | 5 ++-- .github/workflows/docker-localnet.yml | 6 +++-- .github/workflows/docker.yml | 2 +- .github/workflows/fireactions-smoke.yml | 2 +- .github/workflows/hotfixes.yml | 2 +- .github/workflows/label-triggers.yml | 4 ++-- .github/workflows/require-clean-merges.yml | 2 +- .github/workflows/rustdocs.yml | 5 ++-- ...reactions-apply-benchmark-patch-dryrun.yml | 2 +- .../test-fireactions-docker-dryrun.yml | 2 +- ...est-fireactions-docker-localnet-dryrun.yml | 8 ++++--- ...est-fireactions-hotfixes-labels-dryrun.yml | 2 +- .../test-fireactions-noinstall-probes.yml | 2 +- .../test-fireactions-rustdocs-dryrun.yml | 4 +++- ...st-fireactions-update-chainspec-dryrun.yml | 3 ++- .github/workflows/try-runtime.yml | 12 +++++++--- .github/workflows/update-chainspec.yml | 5 ++-- 25 files changed, 71 insertions(+), 42 deletions(-) diff --git a/.github/workflows/cargo-audit.yml b/.github/workflows/cargo-audit.yml index 8db33a4f60..e6f5b5408e 100644 --- a/.github/workflows/cargo-audit.yml +++ b/.github/workflows/cargo-audit.yml @@ -13,7 +13,9 @@ concurrency: jobs: cargo-audit: name: cargo audit - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-standard] + env: + CARGO_BUILD_JOBS: 4 if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip-cargo-audit') }} steps: - name: Check-out repositoroy under $GITHUB_WORKSPACE diff --git a/.github/workflows/check-bittensor-e2e-tests.yml b/.github/workflows/check-bittensor-e2e-tests.yml index a6c0032dee..d800535f4c 100644 --- a/.github/workflows/check-bittensor-e2e-tests.yml +++ b/.github/workflows/check-bittensor-e2e-tests.yml @@ -190,12 +190,14 @@ jobs: strategy: matrix: platform: - - runner: [self-hosted, fireactions] + - runner: [self-hosted, fireactions-highmem] triple: x86_64-unknown-linux-gnu arch: amd64 runtime: ["fast-runtime", "non-fast-runtime"] runs-on: ${{ matrix.platform.runner }} + env: + CARGO_BUILD_JOBS: 6 steps: - name: Checkout code diff --git a/.github/workflows/check-devnet.yml b/.github/workflows/check-devnet.yml index 7c621c3d67..d0ed9af98c 100644 --- a/.github/workflows/check-devnet.yml +++ b/.github/workflows/check-devnet.yml @@ -11,11 +11,12 @@ concurrency: env: CARGO_TERM_COLOR: always + CARGO_BUILD_JOBS: 4 jobs: check-spec-version: name: Check spec_version bump - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-standard] if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-spec-version-bump') }} steps: - name: Dependencies diff --git a/.github/workflows/check-docker.yml b/.github/workflows/check-docker.yml index b3a30a8dca..7117f64a91 100644 --- a/.github/workflows/check-docker.yml +++ b/.github/workflows/check-docker.yml @@ -9,7 +9,7 @@ concurrency: jobs: build: - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-highperf] steps: - name: Checkout code diff --git a/.github/workflows/check-finney.yml b/.github/workflows/check-finney.yml index 26623d045a..f1d9a814e9 100644 --- a/.github/workflows/check-finney.yml +++ b/.github/workflows/check-finney.yml @@ -16,7 +16,7 @@ env: jobs: check-spec-version: name: Check spec_version bump - runs-on: [self-hosted, fireactions-standard] + runs-on: [self-hosted, fireactions-bench, fireactions-standard] if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-spec-version-bump') }} steps: - name: Dependencies diff --git a/.github/workflows/check-node-compat.yml b/.github/workflows/check-node-compat.yml index b1617e4419..a0200b52cc 100644 --- a/.github/workflows/check-node-compat.yml +++ b/.github/workflows/check-node-compat.yml @@ -16,7 +16,7 @@ env: jobs: build: name: build ${{ matrix.version.name }} - runs-on: [self-hosted, fireactions-highmem] + runs-on: [self-hosted, fireactions-bench, fireactions-highmem] if: contains(github.event.pull_request.labels.*.name, 'check-node-compat') env: RUST_BACKTRACE: full @@ -63,7 +63,7 @@ jobs: test: needs: [build] - runs-on: [self-hosted, fireactions-standard] + runs-on: [self-hosted, fireactions-bench, fireactions-standard] steps: - name: Download old node binary uses: actions/download-artifact@v4 diff --git a/.github/workflows/check-rust.yml b/.github/workflows/check-rust.yml index fd260fdd7d..40e843729b 100644 --- a/.github/workflows/check-rust.yml +++ b/.github/workflows/check-rust.yml @@ -17,15 +17,16 @@ on: env: CARGO_TERM_COLOR: always - VERBOSE: ${{ github.events.input.verbose }} + VERBOSE: ${{ github.event.inputs.verbose }} jobs: # runs cargo fmt cargo-fmt: name: cargo fmt - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-low] env: RUST_BACKTRACE: full + CARGO_BUILD_JOBS: 2 steps: - name: Check-out repository under $GITHUB_WORKSPACE uses: actions/checkout@v4 @@ -67,10 +68,11 @@ jobs: cargo-clippy-default-features: name: cargo clippy - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-highmem] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 + CARGO_BUILD_JOBS: 6 steps: - name: Check-out repository under $GITHUB_WORKSPACE uses: actions/checkout@v4 @@ -97,11 +99,12 @@ jobs: cargo-check-lints: name: check custom lints - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-standard] env: RUSTFLAGS: -D warnings RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 + CARGO_BUILD_JOBS: 4 steps: - name: Check-out repository under $GITHUB_WORKSPACE uses: actions/checkout@v4 @@ -130,10 +133,11 @@ jobs: cargo-clippy-all-features: name: cargo clippy --all-features - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-highmem] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 + CARGO_BUILD_JOBS: 6 steps: - name: Check-out repository under $GITHUB_WORKSPACE uses: actions/checkout@v4 @@ -161,10 +165,11 @@ jobs: # runs cargo test --workspace --all-features cargo-test: name: cargo test - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-highperf] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 + CARGO_BUILD_JOBS: 6 steps: - name: Check-out repository under $GITHUB_WORKSPACE uses: actions/checkout@v4 @@ -191,10 +196,11 @@ jobs: # ensures cargo fix has no trivial changes that can be applied cargo-fix: name: cargo fix - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-highmem] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 + CARGO_BUILD_JOBS: 6 steps: - name: Check-out repository under $GITHUB_WORKSPACE uses: actions/checkout@v4 @@ -230,7 +236,9 @@ jobs: check-feature-propagation: name: zepter run check - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-standard] + env: + CARGO_BUILD_JOBS: 4 steps: - name: Checkout diff --git a/.github/workflows/check-testnet.yml b/.github/workflows/check-testnet.yml index 5827bc5114..80079da7e0 100644 --- a/.github/workflows/check-testnet.yml +++ b/.github/workflows/check-testnet.yml @@ -16,7 +16,7 @@ env: jobs: check-spec-version: name: Check spec_version bump - runs-on: [self-hosted, fireactions-standard] + runs-on: [self-hosted, fireactions-bench, fireactions-standard] if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-spec-version-bump') }} steps: - name: Dependencies diff --git a/.github/workflows/contract-tests.yml b/.github/workflows/contract-tests.yml index a5161582e3..688d547ff5 100644 --- a/.github/workflows/contract-tests.yml +++ b/.github/workflows/contract-tests.yml @@ -17,16 +17,17 @@ concurrency: env: CARGO_TERM_COLOR: always - VERBOSE: ${{ github.events.input.verbose }} + VERBOSE: ${{ github.event.inputs.verbose }} permissions: contents: read jobs: run: - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-highperf] env: RUST_BACKTRACE: full + CARGO_BUILD_JOBS: 6 steps: - name: Check-out repository under $GITHUB_WORKSPACE uses: actions/checkout@v4 diff --git a/.github/workflows/docker-localnet.yml b/.github/workflows/docker-localnet.yml index a2818e68f2..5c3a40bdd0 100644 --- a/.github/workflows/docker-localnet.yml +++ b/.github/workflows/docker-localnet.yml @@ -95,7 +95,7 @@ jobs: matrix: platform: # triple names used `in scripts/install_prebuilt_binaries.sh` file - - runner: [self-hosted, fireactions] + - runner: [self-hosted, fireactions-highmem] triple: x86_64-unknown-linux-gnu arch: amd64 - runner: [ubuntu-24.04-arm] @@ -105,6 +105,8 @@ jobs: runtime: ["fast-runtime", "non-fast-runtime"] runs-on: ${{ matrix.platform.runner }} + env: + CARGO_BUILD_JOBS: 6 steps: - name: Checkout code @@ -162,7 +164,7 @@ jobs: # Collect all artifacts and publish them to docker repo docker: needs: [setup, artifacts] - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-highperf] defaults: run: working-directory: ${{ github.workspace }} diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index ccfc52f175..a703e0a99c 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -27,7 +27,7 @@ permissions: jobs: publish: - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-highperf] steps: - name: Determine Docker tag and ref diff --git a/.github/workflows/fireactions-smoke.yml b/.github/workflows/fireactions-smoke.yml index ade597de7d..f5684d311c 100644 --- a/.github/workflows/fireactions-smoke.yml +++ b/.github/workflows/fireactions-smoke.yml @@ -28,7 +28,7 @@ concurrency: jobs: smoke: - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-low] timeout-minutes: 30 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/hotfixes.yml b/.github/workflows/hotfixes.yml index da47f8525f..044fa26dda 100644 --- a/.github/workflows/hotfixes.yml +++ b/.github/workflows/hotfixes.yml @@ -10,7 +10,7 @@ permissions: jobs: handle-hotfix-pr: - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-low] steps: - name: Check if PR is a hotfix into `main` if: > diff --git a/.github/workflows/label-triggers.yml b/.github/workflows/label-triggers.yml index 7ac0b521c6..5ce4ac8c26 100644 --- a/.github/workflows/label-triggers.yml +++ b/.github/workflows/label-triggers.yml @@ -13,7 +13,7 @@ permissions: jobs: comment_on_breaking_change: - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-low] steps: - name: Check if 'breaking change' label is added if: github.event.label.name == 'breaking-change' @@ -25,4 +25,4 @@ jobs: owner: context.repo.owner, repo: context.repo.repo, body: '@opentensor/cerebrum / @opentensor/gyrus / @opentensor/cortex breaking change detected! Please prepare accordingly!' - }) \ No newline at end of file + }) diff --git a/.github/workflows/require-clean-merges.yml b/.github/workflows/require-clean-merges.yml index e942828a53..9cb6cdfb33 100644 --- a/.github/workflows/require-clean-merges.yml +++ b/.github/workflows/require-clean-merges.yml @@ -9,7 +9,7 @@ on: jobs: assert-clean-merges: - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-low] steps: - name: Checkout Repository uses: actions/checkout@v4 diff --git a/.github/workflows/rustdocs.yml b/.github/workflows/rustdocs.yml index f655f8d02f..08f7c92eca 100644 --- a/.github/workflows/rustdocs.yml +++ b/.github/workflows/rustdocs.yml @@ -12,10 +12,11 @@ concurrency: env: CARGO_TERM_COLOR: always + CARGO_BUILD_JOBS: 4 jobs: build: - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-standard] steps: - name: Checkout code @@ -54,7 +55,7 @@ jobs: deploy: needs: build - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-standard] permissions: pages: write diff --git a/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml b/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml index d407610cf4..f3ec8ed3f1 100644 --- a/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml +++ b/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml @@ -41,7 +41,7 @@ concurrency: jobs: apply-dryrun: - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-low] timeout-minutes: 30 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/test-fireactions-docker-dryrun.yml b/.github/workflows/test-fireactions-docker-dryrun.yml index 09969a4fa9..54fa9e1950 100644 --- a/.github/workflows/test-fireactions-docker-dryrun.yml +++ b/.github/workflows/test-fireactions-docker-dryrun.yml @@ -32,7 +32,7 @@ concurrency: jobs: publish-dryrun: - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-highperf] timeout-minutes: 45 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/test-fireactions-docker-localnet-dryrun.yml b/.github/workflows/test-fireactions-docker-localnet-dryrun.yml index 213d8295be..cfb74fad98 100644 --- a/.github/workflows/test-fireactions-docker-localnet-dryrun.yml +++ b/.github/workflows/test-fireactions-docker-localnet-dryrun.yml @@ -33,7 +33,7 @@ concurrency: jobs: setup: - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-low] outputs: ref: ${{ steps.vars.outputs.ref }} tag: ${{ steps.vars.outputs.tag }} @@ -58,8 +58,10 @@ jobs: fail-fast: false matrix: runtime: ["fast-runtime", "non-fast-runtime"] - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-highmem] timeout-minutes: 120 + env: + CARGO_BUILD_JOBS: 6 steps: - name: Checkout target ref uses: actions/checkout@v4 @@ -124,7 +126,7 @@ jobs: docker: needs: [setup, artifacts] - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-highperf] timeout-minutes: 90 steps: - name: Checkout target ref diff --git a/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml b/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml index 82db50af88..65eee135bf 100644 --- a/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml +++ b/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml @@ -63,7 +63,7 @@ concurrency: jobs: payload-dryrun: - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-low] timeout-minutes: 20 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/test-fireactions-noinstall-probes.yml b/.github/workflows/test-fireactions-noinstall-probes.yml index 970c03c55d..6c2c843e3c 100644 --- a/.github/workflows/test-fireactions-noinstall-probes.yml +++ b/.github/workflows/test-fireactions-noinstall-probes.yml @@ -28,7 +28,7 @@ concurrency: jobs: probes: - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-low] timeout-minutes: 20 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/test-fireactions-rustdocs-dryrun.yml b/.github/workflows/test-fireactions-rustdocs-dryrun.yml index 416e882124..b2069ccafd 100644 --- a/.github/workflows/test-fireactions-rustdocs-dryrun.yml +++ b/.github/workflows/test-fireactions-rustdocs-dryrun.yml @@ -31,8 +31,10 @@ concurrency: jobs: build-docs-dryrun: - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-standard] timeout-minutes: 90 + env: + CARGO_BUILD_JOBS: 4 steps: - name: Enforce dry-run mode run: | diff --git a/.github/workflows/test-fireactions-update-chainspec-dryrun.yml b/.github/workflows/test-fireactions-update-chainspec-dryrun.yml index bcdf4a52bc..c49fbc8096 100644 --- a/.github/workflows/test-fireactions-update-chainspec-dryrun.yml +++ b/.github/workflows/test-fireactions-update-chainspec-dryrun.yml @@ -31,11 +31,12 @@ concurrency: jobs: update-chainspecs-dryrun: - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-highmem] timeout-minutes: 120 env: CARGO_TERM_COLOR: always RUST_BACKTRACE: full + CARGO_BUILD_JOBS: 6 steps: - name: Enforce dry-run mode run: | diff --git a/.github/workflows/try-runtime.yml b/.github/workflows/try-runtime.yml index d5cb3667b4..cfc6bf3049 100644 --- a/.github/workflows/try-runtime.yml +++ b/.github/workflows/try-runtime.yml @@ -14,7 +14,9 @@ jobs: check-devnet: name: check devnet if: github.base_ref != 'main' - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-highmem] + env: + CARGO_BUILD_JOBS: 6 steps: - name: Checkout sources uses: actions/checkout@v4 @@ -45,7 +47,9 @@ jobs: check-testnet: name: check testnet if: github.base_ref != 'main' - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-highmem] + env: + CARGO_BUILD_JOBS: 6 steps: - name: Checkout sources uses: actions/checkout@v4 @@ -76,7 +80,9 @@ jobs: check-finney: name: check finney # if: github.base_ref == 'testnet' || github.base_ref == 'devnet' || github.base_ref == 'main' - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-highperf] + env: + CARGO_BUILD_JOBS: 6 steps: - name: Checkout sources uses: actions/checkout@v4 diff --git a/.github/workflows/update-chainspec.yml b/.github/workflows/update-chainspec.yml index 71fa44bf7b..e6e84c8dc5 100644 --- a/.github/workflows/update-chainspec.yml +++ b/.github/workflows/update-chainspec.yml @@ -14,11 +14,12 @@ on: env: CARGO_TERM_COLOR: always - VERBOSE: ${{ github.events.input.verbose }} + VERBOSE: ${{ github.event.inputs.verbose }} + CARGO_BUILD_JOBS: 4 jobs: update-chainspecs: - runs-on: [self-hosted, fireactions] + runs-on: [self-hosted, fireactions-bench, fireactions-standard] permissions: contents: write if: > From c0c4fd55156a24912954414f8377dc7a7261c5b2 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Wed, 4 Mar 2026 23:44:57 +0100 Subject: [PATCH 17/62] bench-sweep pr2483 sweep=pr2483-commit-20260304T224037Z host=ax102 profile=2c8g rep=1 From ddd0e34b3338ce362725776d01f743aa043bf443 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Wed, 4 Mar 2026 23:47:13 +0100 Subject: [PATCH 18/62] ci: bench-gate matrix runner arrays --- .github/workflows/check-bittensor-e2e-tests.yml | 2 +- .github/workflows/docker-localnet.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check-bittensor-e2e-tests.yml b/.github/workflows/check-bittensor-e2e-tests.yml index d800535f4c..76c759554d 100644 --- a/.github/workflows/check-bittensor-e2e-tests.yml +++ b/.github/workflows/check-bittensor-e2e-tests.yml @@ -190,7 +190,7 @@ jobs: strategy: matrix: platform: - - runner: [self-hosted, fireactions-highmem] + - runner: [self-hosted, fireactions-bench, fireactions-highmem] triple: x86_64-unknown-linux-gnu arch: amd64 runtime: ["fast-runtime", "non-fast-runtime"] diff --git a/.github/workflows/docker-localnet.yml b/.github/workflows/docker-localnet.yml index 5c3a40bdd0..8ab403c50b 100644 --- a/.github/workflows/docker-localnet.yml +++ b/.github/workflows/docker-localnet.yml @@ -95,7 +95,7 @@ jobs: matrix: platform: # triple names used `in scripts/install_prebuilt_binaries.sh` file - - runner: [self-hosted, fireactions-highmem] + - runner: [self-hosted, fireactions-bench, fireactions-highmem] triple: x86_64-unknown-linux-gnu arch: amd64 - runner: [ubuntu-24.04-arm] From a4aad979466aca1b2489eedee47b99e99baad6b0 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Wed, 4 Mar 2026 23:54:27 +0100 Subject: [PATCH 19/62] bench-sweep pr2483 sweep=pr2483-commit-20260304T225008Z host=ax102 profile=2c8g rep=1 From 592afbe04bf446cc5d48e6d78eb3727c9b7c9062 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Thu, 5 Mar 2026 00:14:35 +0100 Subject: [PATCH 20/62] bench-sweep pr2483 sweep=pr2483-commit-20260304T231015Z host=ax102 profile=2c8g rep=1 From d679989846ab247199af20e93a20c91f20dc4793 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Thu, 5 Mar 2026 01:02:18 +0100 Subject: [PATCH 21/62] ci: skip non-benchmark workflows on PR #2483 --- .github/workflows/check-bittensor-e2e-tests.yml | 1 + .github/workflows/e2e.yml | 4 +++- .github/workflows/run-benchmarks.yml | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/check-bittensor-e2e-tests.yml b/.github/workflows/check-bittensor-e2e-tests.yml index 76c759554d..1879d398da 100644 --- a/.github/workflows/check-bittensor-e2e-tests.yml +++ b/.github/workflows/check-bittensor-e2e-tests.yml @@ -26,6 +26,7 @@ env: jobs: check-label: + if: ${{ github.event_name != 'pull_request' || github.event.pull_request.number != 2483 }} runs-on: ubuntu-latest outputs: skip-bittensor-e2e-tests: ${{ steps.get-labels.outputs.skip-bittensor-e2e-tests || steps.set-default.outputs.skip-bittensor-e2e-tests }} diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index f04d592a64..b328ecea8e 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -19,6 +19,7 @@ permissions: jobs: # Build the node binary in both variants and share as artifacts. build: + if: ${{ github.event_name != 'pull_request' || github.event.pull_request.number != 2483 }} runs-on: [self-hosted, type-ccx33] timeout-minutes: 60 strategy: @@ -64,6 +65,7 @@ jobs: # Discover e2e packages that have a "test" script. discover: + if: ${{ github.event_name != 'pull_request' || github.event.pull_request.number != 2483 }} runs-on: ubuntu-latest outputs: packages: ${{ steps.find.outputs.packages }} @@ -94,7 +96,7 @@ jobs: # Run each e2e package's tests in parallel. test: needs: [build, discover] - if: ${{ needs.discover.outputs.packages != '[]' }} + if: ${{ (github.event_name != 'pull_request' || github.event.pull_request.number != 2483) && needs.discover.outputs.packages != '[]' }} runs-on: [self-hosted, type-ccx33] timeout-minutes: 30 strategy: diff --git a/.github/workflows/run-benchmarks.yml b/.github/workflows/run-benchmarks.yml index 12df3f8ab6..b479c7a54d 100644 --- a/.github/workflows/run-benchmarks.yml +++ b/.github/workflows/run-benchmarks.yml @@ -16,6 +16,7 @@ concurrency: jobs: validate-benchmarks: + if: ${{ github.event_name != 'pull_request' || github.event.pull_request.number != 2483 }} runs-on: Benchmarking env: From 30c6e2f96d9f41e68b4bde5025008e137d794ed3 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Thu, 5 Mar 2026 01:10:06 +0100 Subject: [PATCH 22/62] bench-sweep pr2483 sweep=pr2483-commit-20260305T000550Z host=ax102 profile=2c8g rep=1 From c6d4366b6a943e765760460b14dbe7f87ebba05d Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Thu, 5 Mar 2026 01:22:45 +0100 Subject: [PATCH 23/62] bench-sweep pr2483 sweep=pr2483-commit-20260305T001816Z host=ax102 profile=2c8g rep=1 From aaf7d539a189a07c04939989ffb38882ce6701a4 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Thu, 5 Mar 2026 01:32:31 +0100 Subject: [PATCH 24/62] bench-sweep pr2483 sweep=pr2483-commit-20260305T001816Z host=ax162 profile=2c8g rep=1 From de8319d453c8221b293c1f8cada0f6429c786704 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Thu, 5 Mar 2026 01:43:19 +0100 Subject: [PATCH 25/62] bench-sweep pr2483 sweep=pr2483-commit-20260305T001816Z host=ax102 profile=2c8g rep=2 From e6bacc4f7567fce1ce56a4900fb82059808b3f16 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Thu, 5 Mar 2026 14:17:49 +0100 Subject: [PATCH 26/62] bench-sweep pr2483 sweep=pr2483-commit-20260305T001816Z host=ax162 profile=2c8g rep=2 From c74554c2b4e8ed5053090ccef9cd0da40c51cb20 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Thu, 5 Mar 2026 14:31:24 +0100 Subject: [PATCH 27/62] ci: pin fireactions benchmark jobs to pr2483-only label --- .github/workflows/cargo-audit.yml | 2 +- .github/workflows/check-bittensor-e2e-tests.yml | 2 +- .github/workflows/check-devnet.yml | 2 +- .github/workflows/check-docker.yml | 2 +- .github/workflows/check-finney.yml | 2 +- .github/workflows/check-node-compat.yml | 4 ++-- .github/workflows/check-rust.yml | 14 +++++++------- .github/workflows/check-testnet.yml | 2 +- .github/workflows/contract-tests.yml | 2 +- .github/workflows/docker-localnet.yml | 4 ++-- .github/workflows/docker.yml | 2 +- .github/workflows/fireactions-smoke.yml | 2 +- .github/workflows/hotfixes.yml | 2 +- .github/workflows/label-triggers.yml | 2 +- .github/workflows/require-clean-merges.yml | 2 +- .github/workflows/rustdocs.yml | 4 ++-- ...st-fireactions-apply-benchmark-patch-dryrun.yml | 2 +- .../workflows/test-fireactions-docker-dryrun.yml | 2 +- .../test-fireactions-docker-localnet-dryrun.yml | 6 +++--- .../test-fireactions-hotfixes-labels-dryrun.yml | 2 +- .../test-fireactions-noinstall-probes.yml | 2 +- .../workflows/test-fireactions-rustdocs-dryrun.yml | 2 +- .../test-fireactions-update-chainspec-dryrun.yml | 2 +- .github/workflows/try-runtime.yml | 6 +++--- .github/workflows/update-chainspec.yml | 2 +- 25 files changed, 38 insertions(+), 38 deletions(-) diff --git a/.github/workflows/cargo-audit.yml b/.github/workflows/cargo-audit.yml index e6f5b5408e..b1d29af07e 100644 --- a/.github/workflows/cargo-audit.yml +++ b/.github/workflows/cargo-audit.yml @@ -13,7 +13,7 @@ concurrency: jobs: cargo-audit: name: cargo audit - runs-on: [self-hosted, fireactions-bench, fireactions-standard] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] env: CARGO_BUILD_JOBS: 4 if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip-cargo-audit') }} diff --git a/.github/workflows/check-bittensor-e2e-tests.yml b/.github/workflows/check-bittensor-e2e-tests.yml index 1879d398da..27bcb23b9b 100644 --- a/.github/workflows/check-bittensor-e2e-tests.yml +++ b/.github/workflows/check-bittensor-e2e-tests.yml @@ -191,7 +191,7 @@ jobs: strategy: matrix: platform: - - runner: [self-hosted, fireactions-bench, fireactions-highmem] + - runner: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] triple: x86_64-unknown-linux-gnu arch: amd64 runtime: ["fast-runtime", "non-fast-runtime"] diff --git a/.github/workflows/check-devnet.yml b/.github/workflows/check-devnet.yml index d0ed9af98c..2f72985633 100644 --- a/.github/workflows/check-devnet.yml +++ b/.github/workflows/check-devnet.yml @@ -16,7 +16,7 @@ env: jobs: check-spec-version: name: Check spec_version bump - runs-on: [self-hosted, fireactions-bench, fireactions-standard] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-spec-version-bump') }} steps: - name: Dependencies diff --git a/.github/workflows/check-docker.yml b/.github/workflows/check-docker.yml index 7117f64a91..eb11137bcf 100644 --- a/.github/workflows/check-docker.yml +++ b/.github/workflows/check-docker.yml @@ -9,7 +9,7 @@ concurrency: jobs: build: - runs-on: [self-hosted, fireactions-bench, fireactions-highperf] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] steps: - name: Checkout code diff --git a/.github/workflows/check-finney.yml b/.github/workflows/check-finney.yml index f1d9a814e9..0525d50cfb 100644 --- a/.github/workflows/check-finney.yml +++ b/.github/workflows/check-finney.yml @@ -16,7 +16,7 @@ env: jobs: check-spec-version: name: Check spec_version bump - runs-on: [self-hosted, fireactions-bench, fireactions-standard] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-spec-version-bump') }} steps: - name: Dependencies diff --git a/.github/workflows/check-node-compat.yml b/.github/workflows/check-node-compat.yml index a0200b52cc..b8ceed0940 100644 --- a/.github/workflows/check-node-compat.yml +++ b/.github/workflows/check-node-compat.yml @@ -16,7 +16,7 @@ env: jobs: build: name: build ${{ matrix.version.name }} - runs-on: [self-hosted, fireactions-bench, fireactions-highmem] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] if: contains(github.event.pull_request.labels.*.name, 'check-node-compat') env: RUST_BACKTRACE: full @@ -63,7 +63,7 @@ jobs: test: needs: [build] - runs-on: [self-hosted, fireactions-bench, fireactions-standard] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] steps: - name: Download old node binary uses: actions/download-artifact@v4 diff --git a/.github/workflows/check-rust.yml b/.github/workflows/check-rust.yml index 40e843729b..b03c2bfcf7 100644 --- a/.github/workflows/check-rust.yml +++ b/.github/workflows/check-rust.yml @@ -23,7 +23,7 @@ jobs: # runs cargo fmt cargo-fmt: name: cargo fmt - runs-on: [self-hosted, fireactions-bench, fireactions-low] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] env: RUST_BACKTRACE: full CARGO_BUILD_JOBS: 2 @@ -68,7 +68,7 @@ jobs: cargo-clippy-default-features: name: cargo clippy - runs-on: [self-hosted, fireactions-bench, fireactions-highmem] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 @@ -99,7 +99,7 @@ jobs: cargo-check-lints: name: check custom lints - runs-on: [self-hosted, fireactions-bench, fireactions-standard] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] env: RUSTFLAGS: -D warnings RUST_BACKTRACE: full @@ -133,7 +133,7 @@ jobs: cargo-clippy-all-features: name: cargo clippy --all-features - runs-on: [self-hosted, fireactions-bench, fireactions-highmem] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 @@ -165,7 +165,7 @@ jobs: # runs cargo test --workspace --all-features cargo-test: name: cargo test - runs-on: [self-hosted, fireactions-bench, fireactions-highperf] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 @@ -196,7 +196,7 @@ jobs: # ensures cargo fix has no trivial changes that can be applied cargo-fix: name: cargo fix - runs-on: [self-hosted, fireactions-bench, fireactions-highmem] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 @@ -236,7 +236,7 @@ jobs: check-feature-propagation: name: zepter run check - runs-on: [self-hosted, fireactions-bench, fireactions-standard] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] env: CARGO_BUILD_JOBS: 4 diff --git a/.github/workflows/check-testnet.yml b/.github/workflows/check-testnet.yml index 80079da7e0..257b6ffe10 100644 --- a/.github/workflows/check-testnet.yml +++ b/.github/workflows/check-testnet.yml @@ -16,7 +16,7 @@ env: jobs: check-spec-version: name: Check spec_version bump - runs-on: [self-hosted, fireactions-bench, fireactions-standard] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-spec-version-bump') }} steps: - name: Dependencies diff --git a/.github/workflows/contract-tests.yml b/.github/workflows/contract-tests.yml index 688d547ff5..891be0c37d 100644 --- a/.github/workflows/contract-tests.yml +++ b/.github/workflows/contract-tests.yml @@ -24,7 +24,7 @@ permissions: jobs: run: - runs-on: [self-hosted, fireactions-bench, fireactions-highperf] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] env: RUST_BACKTRACE: full CARGO_BUILD_JOBS: 6 diff --git a/.github/workflows/docker-localnet.yml b/.github/workflows/docker-localnet.yml index 8ab403c50b..a653dda040 100644 --- a/.github/workflows/docker-localnet.yml +++ b/.github/workflows/docker-localnet.yml @@ -95,7 +95,7 @@ jobs: matrix: platform: # triple names used `in scripts/install_prebuilt_binaries.sh` file - - runner: [self-hosted, fireactions-bench, fireactions-highmem] + - runner: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] triple: x86_64-unknown-linux-gnu arch: amd64 - runner: [ubuntu-24.04-arm] @@ -164,7 +164,7 @@ jobs: # Collect all artifacts and publish them to docker repo docker: needs: [setup, artifacts] - runs-on: [self-hosted, fireactions-bench, fireactions-highperf] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] defaults: run: working-directory: ${{ github.workspace }} diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index a703e0a99c..a5369dd878 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -27,7 +27,7 @@ permissions: jobs: publish: - runs-on: [self-hosted, fireactions-bench, fireactions-highperf] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] steps: - name: Determine Docker tag and ref diff --git a/.github/workflows/fireactions-smoke.yml b/.github/workflows/fireactions-smoke.yml index f5684d311c..d82e3e61b0 100644 --- a/.github/workflows/fireactions-smoke.yml +++ b/.github/workflows/fireactions-smoke.yml @@ -28,7 +28,7 @@ concurrency: jobs: smoke: - runs-on: [self-hosted, fireactions-bench, fireactions-low] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] timeout-minutes: 30 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/hotfixes.yml b/.github/workflows/hotfixes.yml index 044fa26dda..f1a27c01e6 100644 --- a/.github/workflows/hotfixes.yml +++ b/.github/workflows/hotfixes.yml @@ -10,7 +10,7 @@ permissions: jobs: handle-hotfix-pr: - runs-on: [self-hosted, fireactions-bench, fireactions-low] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] steps: - name: Check if PR is a hotfix into `main` if: > diff --git a/.github/workflows/label-triggers.yml b/.github/workflows/label-triggers.yml index 5ce4ac8c26..8340ed33b0 100644 --- a/.github/workflows/label-triggers.yml +++ b/.github/workflows/label-triggers.yml @@ -13,7 +13,7 @@ permissions: jobs: comment_on_breaking_change: - runs-on: [self-hosted, fireactions-bench, fireactions-low] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] steps: - name: Check if 'breaking change' label is added if: github.event.label.name == 'breaking-change' diff --git a/.github/workflows/require-clean-merges.yml b/.github/workflows/require-clean-merges.yml index 9cb6cdfb33..c4c317e0fe 100644 --- a/.github/workflows/require-clean-merges.yml +++ b/.github/workflows/require-clean-merges.yml @@ -9,7 +9,7 @@ on: jobs: assert-clean-merges: - runs-on: [self-hosted, fireactions-bench, fireactions-low] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] steps: - name: Checkout Repository uses: actions/checkout@v4 diff --git a/.github/workflows/rustdocs.yml b/.github/workflows/rustdocs.yml index 08f7c92eca..9f99abd9fd 100644 --- a/.github/workflows/rustdocs.yml +++ b/.github/workflows/rustdocs.yml @@ -16,7 +16,7 @@ env: jobs: build: - runs-on: [self-hosted, fireactions-bench, fireactions-standard] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] steps: - name: Checkout code @@ -55,7 +55,7 @@ jobs: deploy: needs: build - runs-on: [self-hosted, fireactions-bench, fireactions-standard] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] permissions: pages: write diff --git a/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml b/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml index f3ec8ed3f1..e910122b89 100644 --- a/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml +++ b/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml @@ -41,7 +41,7 @@ concurrency: jobs: apply-dryrun: - runs-on: [self-hosted, fireactions-bench, fireactions-low] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] timeout-minutes: 30 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/test-fireactions-docker-dryrun.yml b/.github/workflows/test-fireactions-docker-dryrun.yml index 54fa9e1950..9ae510fe33 100644 --- a/.github/workflows/test-fireactions-docker-dryrun.yml +++ b/.github/workflows/test-fireactions-docker-dryrun.yml @@ -32,7 +32,7 @@ concurrency: jobs: publish-dryrun: - runs-on: [self-hosted, fireactions-bench, fireactions-highperf] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] timeout-minutes: 45 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/test-fireactions-docker-localnet-dryrun.yml b/.github/workflows/test-fireactions-docker-localnet-dryrun.yml index cfb74fad98..f151c6382c 100644 --- a/.github/workflows/test-fireactions-docker-localnet-dryrun.yml +++ b/.github/workflows/test-fireactions-docker-localnet-dryrun.yml @@ -33,7 +33,7 @@ concurrency: jobs: setup: - runs-on: [self-hosted, fireactions-bench, fireactions-low] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] outputs: ref: ${{ steps.vars.outputs.ref }} tag: ${{ steps.vars.outputs.tag }} @@ -58,7 +58,7 @@ jobs: fail-fast: false matrix: runtime: ["fast-runtime", "non-fast-runtime"] - runs-on: [self-hosted, fireactions-bench, fireactions-highmem] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] timeout-minutes: 120 env: CARGO_BUILD_JOBS: 6 @@ -126,7 +126,7 @@ jobs: docker: needs: [setup, artifacts] - runs-on: [self-hosted, fireactions-bench, fireactions-highperf] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] timeout-minutes: 90 steps: - name: Checkout target ref diff --git a/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml b/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml index 65eee135bf..61072f827c 100644 --- a/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml +++ b/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml @@ -63,7 +63,7 @@ concurrency: jobs: payload-dryrun: - runs-on: [self-hosted, fireactions-bench, fireactions-low] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] timeout-minutes: 20 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/test-fireactions-noinstall-probes.yml b/.github/workflows/test-fireactions-noinstall-probes.yml index 6c2c843e3c..0bb4f9403d 100644 --- a/.github/workflows/test-fireactions-noinstall-probes.yml +++ b/.github/workflows/test-fireactions-noinstall-probes.yml @@ -28,7 +28,7 @@ concurrency: jobs: probes: - runs-on: [self-hosted, fireactions-bench, fireactions-low] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] timeout-minutes: 20 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/test-fireactions-rustdocs-dryrun.yml b/.github/workflows/test-fireactions-rustdocs-dryrun.yml index b2069ccafd..592e79bd36 100644 --- a/.github/workflows/test-fireactions-rustdocs-dryrun.yml +++ b/.github/workflows/test-fireactions-rustdocs-dryrun.yml @@ -31,7 +31,7 @@ concurrency: jobs: build-docs-dryrun: - runs-on: [self-hosted, fireactions-bench, fireactions-standard] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] timeout-minutes: 90 env: CARGO_BUILD_JOBS: 4 diff --git a/.github/workflows/test-fireactions-update-chainspec-dryrun.yml b/.github/workflows/test-fireactions-update-chainspec-dryrun.yml index c49fbc8096..79690e52a4 100644 --- a/.github/workflows/test-fireactions-update-chainspec-dryrun.yml +++ b/.github/workflows/test-fireactions-update-chainspec-dryrun.yml @@ -31,7 +31,7 @@ concurrency: jobs: update-chainspecs-dryrun: - runs-on: [self-hosted, fireactions-bench, fireactions-highmem] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] timeout-minutes: 120 env: CARGO_TERM_COLOR: always diff --git a/.github/workflows/try-runtime.yml b/.github/workflows/try-runtime.yml index cfc6bf3049..372e181c21 100644 --- a/.github/workflows/try-runtime.yml +++ b/.github/workflows/try-runtime.yml @@ -14,7 +14,7 @@ jobs: check-devnet: name: check devnet if: github.base_ref != 'main' - runs-on: [self-hosted, fireactions-bench, fireactions-highmem] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] env: CARGO_BUILD_JOBS: 6 steps: @@ -47,7 +47,7 @@ jobs: check-testnet: name: check testnet if: github.base_ref != 'main' - runs-on: [self-hosted, fireactions-bench, fireactions-highmem] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] env: CARGO_BUILD_JOBS: 6 steps: @@ -80,7 +80,7 @@ jobs: check-finney: name: check finney # if: github.base_ref == 'testnet' || github.base_ref == 'devnet' || github.base_ref == 'main' - runs-on: [self-hosted, fireactions-bench, fireactions-highperf] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] env: CARGO_BUILD_JOBS: 6 steps: diff --git a/.github/workflows/update-chainspec.yml b/.github/workflows/update-chainspec.yml index e6e84c8dc5..e99cabe7bc 100644 --- a/.github/workflows/update-chainspec.yml +++ b/.github/workflows/update-chainspec.yml @@ -19,7 +19,7 @@ env: jobs: update-chainspecs: - runs-on: [self-hosted, fireactions-bench, fireactions-standard] + runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] permissions: contents: write if: > From b07623add8dc5d74f57197ff1b3b79b4a5326dc9 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Thu, 5 Mar 2026 14:45:44 +0100 Subject: [PATCH 28/62] bench-sweep pr2483 sweep=pr2483-commit-20260305T133839Z host=ax102 profile=2c8g rep=1 From 9aa01eb56cd73df6c68e490c4c065a021a7e783d Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Thu, 5 Mar 2026 14:51:12 +0100 Subject: [PATCH 29/62] ci: pin benchmark jobs to fireactions runner group --- .github/workflows/cargo-audit.yml | 4 ++- .../workflows/check-bittensor-e2e-tests.yml | 4 ++- .github/workflows/check-devnet.yml | 4 ++- .github/workflows/check-docker.yml | 4 ++- .github/workflows/check-finney.yml | 4 ++- .github/workflows/check-node-compat.yml | 8 ++++-- .github/workflows/check-rust.yml | 28 ++++++++++++++----- .github/workflows/check-testnet.yml | 4 ++- .github/workflows/contract-tests.yml | 4 ++- .github/workflows/docker-localnet.yml | 11 ++++---- .github/workflows/docker.yml | 4 ++- .github/workflows/fireactions-smoke.yml | 4 ++- .github/workflows/hotfixes.yml | 4 ++- .github/workflows/label-triggers.yml | 4 ++- .github/workflows/require-clean-merges.yml | 4 ++- .github/workflows/rustdocs.yml | 8 ++++-- ...reactions-apply-benchmark-patch-dryrun.yml | 4 ++- .../test-fireactions-docker-dryrun.yml | 4 ++- ...est-fireactions-docker-localnet-dryrun.yml | 12 ++++++-- ...est-fireactions-hotfixes-labels-dryrun.yml | 4 ++- .../test-fireactions-noinstall-probes.yml | 4 ++- .../test-fireactions-rustdocs-dryrun.yml | 4 ++- ...st-fireactions-update-chainspec-dryrun.yml | 4 ++- .github/workflows/try-runtime.yml | 12 ++++++-- .github/workflows/update-chainspec.yml | 4 ++- 25 files changed, 114 insertions(+), 41 deletions(-) diff --git a/.github/workflows/cargo-audit.yml b/.github/workflows/cargo-audit.yml index b1d29af07e..bd8cb15d00 100644 --- a/.github/workflows/cargo-audit.yml +++ b/.github/workflows/cargo-audit.yml @@ -13,7 +13,9 @@ concurrency: jobs: cargo-audit: name: cargo audit - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] env: CARGO_BUILD_JOBS: 4 if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip-cargo-audit') }} diff --git a/.github/workflows/check-bittensor-e2e-tests.yml b/.github/workflows/check-bittensor-e2e-tests.yml index 27bcb23b9b..4ce91ce533 100644 --- a/.github/workflows/check-bittensor-e2e-tests.yml +++ b/.github/workflows/check-bittensor-e2e-tests.yml @@ -196,7 +196,9 @@ jobs: arch: amd64 runtime: ["fast-runtime", "non-fast-runtime"] - runs-on: ${{ matrix.platform.runner }} + runs-on: + group: fireactions + labels: ${{ matrix.platform.runner }} env: CARGO_BUILD_JOBS: 6 diff --git a/.github/workflows/check-devnet.yml b/.github/workflows/check-devnet.yml index 2f72985633..a458051785 100644 --- a/.github/workflows/check-devnet.yml +++ b/.github/workflows/check-devnet.yml @@ -16,7 +16,9 @@ env: jobs: check-spec-version: name: Check spec_version bump - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-spec-version-bump') }} steps: - name: Dependencies diff --git a/.github/workflows/check-docker.yml b/.github/workflows/check-docker.yml index eb11137bcf..1634602e69 100644 --- a/.github/workflows/check-docker.yml +++ b/.github/workflows/check-docker.yml @@ -9,7 +9,9 @@ concurrency: jobs: build: - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] steps: - name: Checkout code diff --git a/.github/workflows/check-finney.yml b/.github/workflows/check-finney.yml index 0525d50cfb..c4ff5463a3 100644 --- a/.github/workflows/check-finney.yml +++ b/.github/workflows/check-finney.yml @@ -16,7 +16,9 @@ env: jobs: check-spec-version: name: Check spec_version bump - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-spec-version-bump') }} steps: - name: Dependencies diff --git a/.github/workflows/check-node-compat.yml b/.github/workflows/check-node-compat.yml index b8ceed0940..12e5590ca2 100644 --- a/.github/workflows/check-node-compat.yml +++ b/.github/workflows/check-node-compat.yml @@ -16,7 +16,9 @@ env: jobs: build: name: build ${{ matrix.version.name }} - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] if: contains(github.event.pull_request.labels.*.name, 'check-node-compat') env: RUST_BACKTRACE: full @@ -63,7 +65,9 @@ jobs: test: needs: [build] - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] steps: - name: Download old node binary uses: actions/download-artifact@v4 diff --git a/.github/workflows/check-rust.yml b/.github/workflows/check-rust.yml index b03c2bfcf7..ed2b711634 100644 --- a/.github/workflows/check-rust.yml +++ b/.github/workflows/check-rust.yml @@ -23,7 +23,9 @@ jobs: # runs cargo fmt cargo-fmt: name: cargo fmt - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] env: RUST_BACKTRACE: full CARGO_BUILD_JOBS: 2 @@ -68,7 +70,9 @@ jobs: cargo-clippy-default-features: name: cargo clippy - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 @@ -99,7 +103,9 @@ jobs: cargo-check-lints: name: check custom lints - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] env: RUSTFLAGS: -D warnings RUST_BACKTRACE: full @@ -133,7 +139,9 @@ jobs: cargo-clippy-all-features: name: cargo clippy --all-features - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 @@ -165,7 +173,9 @@ jobs: # runs cargo test --workspace --all-features cargo-test: name: cargo test - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 @@ -196,7 +206,9 @@ jobs: # ensures cargo fix has no trivial changes that can be applied cargo-fix: name: cargo fix - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 @@ -236,7 +248,9 @@ jobs: check-feature-propagation: name: zepter run check - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] env: CARGO_BUILD_JOBS: 4 diff --git a/.github/workflows/check-testnet.yml b/.github/workflows/check-testnet.yml index 257b6ffe10..a6ef1e5623 100644 --- a/.github/workflows/check-testnet.yml +++ b/.github/workflows/check-testnet.yml @@ -16,7 +16,9 @@ env: jobs: check-spec-version: name: Check spec_version bump - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-spec-version-bump') }} steps: - name: Dependencies diff --git a/.github/workflows/contract-tests.yml b/.github/workflows/contract-tests.yml index 891be0c37d..ae0cfc3fa0 100644 --- a/.github/workflows/contract-tests.yml +++ b/.github/workflows/contract-tests.yml @@ -24,7 +24,9 @@ permissions: jobs: run: - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] env: RUST_BACKTRACE: full CARGO_BUILD_JOBS: 6 diff --git a/.github/workflows/docker-localnet.yml b/.github/workflows/docker-localnet.yml index a653dda040..4d78f55c98 100644 --- a/.github/workflows/docker-localnet.yml +++ b/.github/workflows/docker-localnet.yml @@ -98,13 +98,12 @@ jobs: - runner: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] triple: x86_64-unknown-linux-gnu arch: amd64 - - runner: [ubuntu-24.04-arm] - triple: aarch64-unknown-linux-gnu - arch: arm64 runtime: ["fast-runtime", "non-fast-runtime"] - runs-on: ${{ matrix.platform.runner }} + runs-on: + group: fireactions + labels: ${{ matrix.platform.runner }} env: CARGO_BUILD_JOBS: 6 @@ -164,7 +163,9 @@ jobs: # Collect all artifacts and publish them to docker repo docker: needs: [setup, artifacts] - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] defaults: run: working-directory: ${{ github.workspace }} diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index a5369dd878..69a21b08bf 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -27,7 +27,9 @@ permissions: jobs: publish: - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] steps: - name: Determine Docker tag and ref diff --git a/.github/workflows/fireactions-smoke.yml b/.github/workflows/fireactions-smoke.yml index d82e3e61b0..76f15bdca5 100644 --- a/.github/workflows/fireactions-smoke.yml +++ b/.github/workflows/fireactions-smoke.yml @@ -28,7 +28,9 @@ concurrency: jobs: smoke: - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] timeout-minutes: 30 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/hotfixes.yml b/.github/workflows/hotfixes.yml index f1a27c01e6..c533169594 100644 --- a/.github/workflows/hotfixes.yml +++ b/.github/workflows/hotfixes.yml @@ -10,7 +10,9 @@ permissions: jobs: handle-hotfix-pr: - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] steps: - name: Check if PR is a hotfix into `main` if: > diff --git a/.github/workflows/label-triggers.yml b/.github/workflows/label-triggers.yml index 8340ed33b0..4829a99800 100644 --- a/.github/workflows/label-triggers.yml +++ b/.github/workflows/label-triggers.yml @@ -13,7 +13,9 @@ permissions: jobs: comment_on_breaking_change: - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] steps: - name: Check if 'breaking change' label is added if: github.event.label.name == 'breaking-change' diff --git a/.github/workflows/require-clean-merges.yml b/.github/workflows/require-clean-merges.yml index c4c317e0fe..de5c8a9500 100644 --- a/.github/workflows/require-clean-merges.yml +++ b/.github/workflows/require-clean-merges.yml @@ -9,7 +9,9 @@ on: jobs: assert-clean-merges: - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] steps: - name: Checkout Repository uses: actions/checkout@v4 diff --git a/.github/workflows/rustdocs.yml b/.github/workflows/rustdocs.yml index 9f99abd9fd..acfcac08e2 100644 --- a/.github/workflows/rustdocs.yml +++ b/.github/workflows/rustdocs.yml @@ -16,7 +16,9 @@ env: jobs: build: - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] steps: - name: Checkout code @@ -55,7 +57,9 @@ jobs: deploy: needs: build - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] permissions: pages: write diff --git a/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml b/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml index e910122b89..a804d12df0 100644 --- a/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml +++ b/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml @@ -41,7 +41,9 @@ concurrency: jobs: apply-dryrun: - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] timeout-minutes: 30 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/test-fireactions-docker-dryrun.yml b/.github/workflows/test-fireactions-docker-dryrun.yml index 9ae510fe33..5b1e0e29cf 100644 --- a/.github/workflows/test-fireactions-docker-dryrun.yml +++ b/.github/workflows/test-fireactions-docker-dryrun.yml @@ -32,7 +32,9 @@ concurrency: jobs: publish-dryrun: - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] timeout-minutes: 45 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/test-fireactions-docker-localnet-dryrun.yml b/.github/workflows/test-fireactions-docker-localnet-dryrun.yml index f151c6382c..eefbdfc954 100644 --- a/.github/workflows/test-fireactions-docker-localnet-dryrun.yml +++ b/.github/workflows/test-fireactions-docker-localnet-dryrun.yml @@ -33,7 +33,9 @@ concurrency: jobs: setup: - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] outputs: ref: ${{ steps.vars.outputs.ref }} tag: ${{ steps.vars.outputs.tag }} @@ -58,7 +60,9 @@ jobs: fail-fast: false matrix: runtime: ["fast-runtime", "non-fast-runtime"] - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] timeout-minutes: 120 env: CARGO_BUILD_JOBS: 6 @@ -126,7 +130,9 @@ jobs: docker: needs: [setup, artifacts] - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] timeout-minutes: 90 steps: - name: Checkout target ref diff --git a/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml b/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml index 61072f827c..d8944f6a9b 100644 --- a/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml +++ b/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml @@ -63,7 +63,9 @@ concurrency: jobs: payload-dryrun: - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] timeout-minutes: 20 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/test-fireactions-noinstall-probes.yml b/.github/workflows/test-fireactions-noinstall-probes.yml index 0bb4f9403d..033fae7136 100644 --- a/.github/workflows/test-fireactions-noinstall-probes.yml +++ b/.github/workflows/test-fireactions-noinstall-probes.yml @@ -28,7 +28,9 @@ concurrency: jobs: probes: - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] timeout-minutes: 20 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/test-fireactions-rustdocs-dryrun.yml b/.github/workflows/test-fireactions-rustdocs-dryrun.yml index 592e79bd36..effb81b62b 100644 --- a/.github/workflows/test-fireactions-rustdocs-dryrun.yml +++ b/.github/workflows/test-fireactions-rustdocs-dryrun.yml @@ -31,7 +31,9 @@ concurrency: jobs: build-docs-dryrun: - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] timeout-minutes: 90 env: CARGO_BUILD_JOBS: 4 diff --git a/.github/workflows/test-fireactions-update-chainspec-dryrun.yml b/.github/workflows/test-fireactions-update-chainspec-dryrun.yml index 79690e52a4..5fb30fdd14 100644 --- a/.github/workflows/test-fireactions-update-chainspec-dryrun.yml +++ b/.github/workflows/test-fireactions-update-chainspec-dryrun.yml @@ -31,7 +31,9 @@ concurrency: jobs: update-chainspecs-dryrun: - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] timeout-minutes: 120 env: CARGO_TERM_COLOR: always diff --git a/.github/workflows/try-runtime.yml b/.github/workflows/try-runtime.yml index 372e181c21..9984ee46c7 100644 --- a/.github/workflows/try-runtime.yml +++ b/.github/workflows/try-runtime.yml @@ -14,7 +14,9 @@ jobs: check-devnet: name: check devnet if: github.base_ref != 'main' - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] env: CARGO_BUILD_JOBS: 6 steps: @@ -47,7 +49,9 @@ jobs: check-testnet: name: check testnet if: github.base_ref != 'main' - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] env: CARGO_BUILD_JOBS: 6 steps: @@ -80,7 +84,9 @@ jobs: check-finney: name: check finney # if: github.base_ref == 'testnet' || github.base_ref == 'devnet' || github.base_ref == 'main' - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] env: CARGO_BUILD_JOBS: 6 steps: diff --git a/.github/workflows/update-chainspec.yml b/.github/workflows/update-chainspec.yml index e99cabe7bc..f434f6fe3c 100644 --- a/.github/workflows/update-chainspec.yml +++ b/.github/workflows/update-chainspec.yml @@ -19,7 +19,9 @@ env: jobs: update-chainspecs: - runs-on: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] permissions: contents: write if: > From 0fc3e34f18c6f7a91e39ef5865c12334206601cd Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Thu, 5 Mar 2026 15:06:29 +0100 Subject: [PATCH 30/62] ci: benchmark e2e self-hosted type jobs on fireactions --- .github/workflows/check-bittensor-e2e-tests.yml | 1 - .github/workflows/e2e.yml | 12 +++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/check-bittensor-e2e-tests.yml b/.github/workflows/check-bittensor-e2e-tests.yml index 4ce91ce533..b74505f391 100644 --- a/.github/workflows/check-bittensor-e2e-tests.yml +++ b/.github/workflows/check-bittensor-e2e-tests.yml @@ -26,7 +26,6 @@ env: jobs: check-label: - if: ${{ github.event_name != 'pull_request' || github.event.pull_request.number != 2483 }} runs-on: ubuntu-latest outputs: skip-bittensor-e2e-tests: ${{ steps.get-labels.outputs.skip-bittensor-e2e-tests || steps.set-default.outputs.skip-bittensor-e2e-tests }} diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index b328ecea8e..9d05196ec8 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -19,8 +19,9 @@ permissions: jobs: # Build the node binary in both variants and share as artifacts. build: - if: ${{ github.event_name != 'pull_request' || github.event.pull_request.number != 2483 }} - runs-on: [self-hosted, type-ccx33] + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem, type-ccx33] timeout-minutes: 60 strategy: matrix: @@ -65,7 +66,6 @@ jobs: # Discover e2e packages that have a "test" script. discover: - if: ${{ github.event_name != 'pull_request' || github.event.pull_request.number != 2483 }} runs-on: ubuntu-latest outputs: packages: ${{ steps.find.outputs.packages }} @@ -96,8 +96,10 @@ jobs: # Run each e2e package's tests in parallel. test: needs: [build, discover] - if: ${{ (github.event_name != 'pull_request' || github.event.pull_request.number != 2483) && needs.discover.outputs.packages != '[]' }} - runs-on: [self-hosted, type-ccx33] + if: ${{ needs.discover.outputs.packages != '[]' }} + runs-on: + group: fireactions + labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem, type-ccx33] timeout-minutes: 30 strategy: fail-fast: false From 55a76a422c25d1e0a4b9255235826be5d0edcf6f Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Thu, 5 Mar 2026 15:18:28 +0100 Subject: [PATCH 31/62] bench-sweep pr2483 sweep=pr2483-commit-20260305T141222Z host=ax102 profile=2c8g rep=1 From 8ed547169770698846e5ae696e7cd398bcb7c24d Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Thu, 5 Mar 2026 15:43:29 +0100 Subject: [PATCH 32/62] bench-sweep pr2483 sweep=pr2483-commit-20260305T141222Z host=ax162 profile=2c8g rep=1 From efe8462f54de7f8f8d9223966080bb3c4912450f Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Thu, 5 Mar 2026 17:51:15 +0100 Subject: [PATCH 33/62] bench-sweep pr2483 sweep=pr2483-commit-20260305T164107Z host=ax102 profile=2c8g rep=1 From 7e86cefc22446ccf73957d1dc9a4792ea9da312e Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Thu, 5 Mar 2026 18:19:09 +0100 Subject: [PATCH 34/62] bench: trigger workflows for benchmark sweep --- .github/benchmark-trigger.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/benchmark-trigger.txt diff --git a/.github/benchmark-trigger.txt b/.github/benchmark-trigger.txt new file mode 100644 index 0000000000..bb09eb117f --- /dev/null +++ b/.github/benchmark-trigger.txt @@ -0,0 +1 @@ +# Benchmark trigger 2026-03-05T17:19:09Z From fd0bfdc9674732edbda704f0ab3d4968164463a8 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Thu, 5 Mar 2026 19:52:55 +0100 Subject: [PATCH 35/62] bench-sweep pr2483 sweep=pr2483-commit-20260305T184125Z host=ax102 profile=2c8g rep=1 From b2f46bba127657f60fdc4df17a355df7a3be6af6 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Thu, 5 Mar 2026 21:13:21 +0100 Subject: [PATCH 36/62] bench-sweep pr2483 sweep=pr2483-commit-20260305T184125Z host=ax162 profile=2c8g rep=1 From 178aea0a70db49defc06a464013d222c2b1f7612 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Thu, 5 Mar 2026 21:59:57 +0100 Subject: [PATCH 37/62] bench-sweep pr2483 sweep=pr2483-commit-20260305T204701Z host=ax102 profile=2c8g rep=1 From fca23727f5c3ec5a01b29f5360a7630e7091c417 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Thu, 5 Mar 2026 23:42:03 +0100 Subject: [PATCH 38/62] bench-sweep pr2483 sweep=pr2483-commit-20260305T204701Z host=ax162 profile=2c8g rep=1 From 7c3335cdad1420c0ea5007f0a5a44aa61065d705 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Fri, 6 Mar 2026 03:45:19 +0100 Subject: [PATCH 39/62] bench-sweep pr2483 sweep=pr2483-commit-20260305T204701Z host=ax102 profile=4c8g rep=1 From 88203c8323d59f5cead38f6ee5bf7100573e1b6e Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Fri, 6 Mar 2026 05:12:43 +0100 Subject: [PATCH 40/62] bench-sweep pr2483 sweep=pr2483-commit-20260305T204701Z host=ax162 profile=4c8g rep=1 From 110b1a433577857dc7ed0737259db3fe56834326 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Fri, 6 Mar 2026 06:40:27 +0100 Subject: [PATCH 41/62] bench-sweep pr2483 sweep=pr2483-commit-20260305T204701Z host=ax102 profile=4c16g rep=1 From a6488f8485a151056376097b4059a8f72afb8cb5 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Fri, 6 Mar 2026 07:58:56 +0100 Subject: [PATCH 42/62] bench-sweep pr2483 sweep=pr2483-commit-20260305T204701Z host=ax162 profile=4c16g rep=1 From f008afc2db7a972736e8381a2b0a93a88229890e Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Fri, 6 Mar 2026 08:54:45 +0100 Subject: [PATCH 43/62] bench-sweep pr2483 sweep=pr2483-commit-20260305T204701Z host=ax102 profile=8c32g rep=1 From 38b8e115784f2504cf107566c62eee52c7024674 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Fri, 6 Mar 2026 10:05:13 +0100 Subject: [PATCH 44/62] bench-sweep pr2483 sweep=pr2483-commit-20260305T204701Z host=ax162 profile=8c32g rep=1 From 27a1c23649b2b7027554b2587eb891363b6ff72f Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Fri, 6 Mar 2026 11:19:19 +0100 Subject: [PATCH 45/62] bench-sweep pr2483 sweep=pr2483-commit-20260305T204701Z host=ax102 profile=16c64g rep=1 From e69230ef8406dec968beb5952732ea01a36d9f53 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Fri, 6 Mar 2026 12:01:37 +0100 Subject: [PATCH 46/62] bench-sweep pr2483 sweep=pr2483-commit-20260306T104521Z host=ax102 profile=4c16g rep=1 From 0779243cc0f5483ec5c3c34e575fc06ff26cdfa2 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Fri, 6 Mar 2026 13:50:10 +0100 Subject: [PATCH 47/62] bench-sweep pr2483 sweep=pr2483-commit-20260306T104521Z host=ax162 profile=4c16g rep=1 From b9c1db45e95a956e63210bcce667786c6837361d Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Fri, 6 Mar 2026 15:10:22 +0100 Subject: [PATCH 48/62] bench-sweep pr2483 sweep=pr2483-commit-20260306T104521Z host=ax102 profile=8c32g rep=1 From f8152006ac5f3764fc8972a3c4424471059fcad2 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Fri, 6 Mar 2026 17:46:11 +0100 Subject: [PATCH 49/62] bench-sweep pr2483 sweep=pr2483-commit-20260306T104521Z host=ax162 profile=8c32g rep=1 From 7d9f77a4860e8093ec87cfd4a9a5ec9ff84b5a7a Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Fri, 6 Mar 2026 19:00:33 +0100 Subject: [PATCH 50/62] bench-sweep pr2483 sweep=pr2483-commit-20260306T104521Z host=ax102 profile=16c64g rep=1 From d49db1d6356b2302734efa62e11fe9d5b8197323 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Fri, 6 Mar 2026 23:25:06 +0100 Subject: [PATCH 51/62] bench-sweep pr2483 sweep=pr2483-commit-20260306T104521Z host=ax162 profile=16c64g rep=1 From a123f62b60b67019f51614366e71c3e28522acd3 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Sat, 7 Mar 2026 01:15:09 +0100 Subject: [PATCH 52/62] bench-sweep pr2483 sweep=pr2483-commit-20260306T104521Z host=ax162 profile=31c64g rep=1 From 4cb223b84f6aa3fe208464cb71a356a7d0724bf1 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Sat, 7 Mar 2026 19:07:00 +0100 Subject: [PATCH 53/62] trigger: validate fireactions-heavy/light pool routing From 229cbd14414ad69314696c4c6bd7b42d86a6aace Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Sat, 7 Mar 2026 19:10:33 +0100 Subject: [PATCH 54/62] chore: update workflow labels to fireactions-heavy/light pools Replace old benchmark-specific labels (fireactions-bench-pr2483, fireactions-highperf, fireactions-highmem, fireactions-standard, fireactions-low) with production 2-tier pool labels (fireactions-heavy, fireactions-light). Co-Authored-By: Claude Opus 4.6 --- .github/workflows/cargo-audit.yml | 2 +- .github/workflows/check-devnet.yml | 2 +- .github/workflows/check-docker.yml | 2 +- .github/workflows/check-finney.yml | 2 +- .github/workflows/check-node-compat.yml | 4 ++-- .github/workflows/check-rust.yml | 14 +++++++------- .github/workflows/check-testnet.yml | 2 +- .github/workflows/contract-tests.yml | 2 +- .github/workflows/docker-localnet.yml | 7 +++---- .github/workflows/docker.yml | 2 +- .github/workflows/e2e.yml | 4 ++-- .github/workflows/fireactions-smoke.yml | 2 +- .github/workflows/hotfixes.yml | 2 +- .github/workflows/label-triggers.yml | 2 +- .github/workflows/require-clean-merges.yml | 2 +- .github/workflows/rustdocs.yml | 4 ++-- ...st-fireactions-apply-benchmark-patch-dryrun.yml | 3 ++- .../workflows/test-fireactions-docker-dryrun.yml | 3 ++- .../test-fireactions-docker-localnet-dryrun.yml | 7 ++++--- .../test-fireactions-hotfixes-labels-dryrun.yml | 3 ++- .../test-fireactions-noinstall-probes.yml | 3 ++- .../workflows/test-fireactions-rustdocs-dryrun.yml | 3 ++- .../test-fireactions-update-chainspec-dryrun.yml | 3 ++- .../test-fireactions-validation-suite.yml | 1 + .github/workflows/try-runtime.yml | 6 +++--- .github/workflows/update-chainspec.yml | 2 +- 26 files changed, 48 insertions(+), 41 deletions(-) diff --git a/.github/workflows/cargo-audit.yml b/.github/workflows/cargo-audit.yml index bd8cb15d00..24ebe301bb 100644 --- a/.github/workflows/cargo-audit.yml +++ b/.github/workflows/cargo-audit.yml @@ -15,7 +15,7 @@ jobs: name: cargo audit runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] + labels: [self-hosted, linux, x64, fireactions, fireactions-light] env: CARGO_BUILD_JOBS: 4 if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip-cargo-audit') }} diff --git a/.github/workflows/check-devnet.yml b/.github/workflows/check-devnet.yml index a458051785..51e23c1722 100644 --- a/.github/workflows/check-devnet.yml +++ b/.github/workflows/check-devnet.yml @@ -18,7 +18,7 @@ jobs: name: Check spec_version bump runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-spec-version-bump') }} steps: - name: Dependencies diff --git a/.github/workflows/check-docker.yml b/.github/workflows/check-docker.yml index 1634602e69..1d2617dff0 100644 --- a/.github/workflows/check-docker.yml +++ b/.github/workflows/check-docker.yml @@ -11,7 +11,7 @@ jobs: build: runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] steps: - name: Checkout code diff --git a/.github/workflows/check-finney.yml b/.github/workflows/check-finney.yml index c4ff5463a3..74d143a0fb 100644 --- a/.github/workflows/check-finney.yml +++ b/.github/workflows/check-finney.yml @@ -18,7 +18,7 @@ jobs: name: Check spec_version bump runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-spec-version-bump') }} steps: - name: Dependencies diff --git a/.github/workflows/check-node-compat.yml b/.github/workflows/check-node-compat.yml index 12e5590ca2..f6b46d552d 100644 --- a/.github/workflows/check-node-compat.yml +++ b/.github/workflows/check-node-compat.yml @@ -18,7 +18,7 @@ jobs: name: build ${{ matrix.version.name }} runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] if: contains(github.event.pull_request.labels.*.name, 'check-node-compat') env: RUST_BACKTRACE: full @@ -67,7 +67,7 @@ jobs: needs: [build] runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] steps: - name: Download old node binary uses: actions/download-artifact@v4 diff --git a/.github/workflows/check-rust.yml b/.github/workflows/check-rust.yml index ed2b711634..e46113b0ed 100644 --- a/.github/workflows/check-rust.yml +++ b/.github/workflows/check-rust.yml @@ -25,7 +25,7 @@ jobs: name: cargo fmt runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] + labels: [self-hosted, linux, x64, fireactions, fireactions-light] env: RUST_BACKTRACE: full CARGO_BUILD_JOBS: 2 @@ -72,7 +72,7 @@ jobs: name: cargo clippy runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 @@ -105,7 +105,7 @@ jobs: name: check custom lints runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] + labels: [self-hosted, linux, x64, fireactions, fireactions-light] env: RUSTFLAGS: -D warnings RUST_BACKTRACE: full @@ -141,7 +141,7 @@ jobs: name: cargo clippy --all-features runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 @@ -175,7 +175,7 @@ jobs: name: cargo test runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 @@ -208,7 +208,7 @@ jobs: name: cargo fix runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 @@ -250,7 +250,7 @@ jobs: name: zepter run check runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] + labels: [self-hosted, linux, x64, fireactions, fireactions-light] env: CARGO_BUILD_JOBS: 4 diff --git a/.github/workflows/check-testnet.yml b/.github/workflows/check-testnet.yml index a6ef1e5623..a938a69c19 100644 --- a/.github/workflows/check-testnet.yml +++ b/.github/workflows/check-testnet.yml @@ -18,7 +18,7 @@ jobs: name: Check spec_version bump runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-spec-version-bump') }} steps: - name: Dependencies diff --git a/.github/workflows/contract-tests.yml b/.github/workflows/contract-tests.yml index ae0cfc3fa0..497763a202 100644 --- a/.github/workflows/contract-tests.yml +++ b/.github/workflows/contract-tests.yml @@ -26,7 +26,7 @@ jobs: run: runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] env: RUST_BACKTRACE: full CARGO_BUILD_JOBS: 6 diff --git a/.github/workflows/docker-localnet.yml b/.github/workflows/docker-localnet.yml index 4d78f55c98..b825bee24c 100644 --- a/.github/workflows/docker-localnet.yml +++ b/.github/workflows/docker-localnet.yml @@ -95,15 +95,14 @@ jobs: matrix: platform: # triple names used `in scripts/install_prebuilt_binaries.sh` file - - runner: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] - triple: x86_64-unknown-linux-gnu + - triple: x86_64-unknown-linux-gnu arch: amd64 runtime: ["fast-runtime", "non-fast-runtime"] runs-on: group: fireactions - labels: ${{ matrix.platform.runner }} + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] env: CARGO_BUILD_JOBS: 6 @@ -165,7 +164,7 @@ jobs: needs: [setup, artifacts] runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] defaults: run: working-directory: ${{ github.workspace }} diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 69a21b08bf..6d40c7b23e 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -29,7 +29,7 @@ jobs: publish: runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] steps: - name: Determine Docker tag and ref diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 9d05196ec8..1b5b49cff8 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -21,7 +21,7 @@ jobs: build: runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem, type-ccx33] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] timeout-minutes: 60 strategy: matrix: @@ -99,7 +99,7 @@ jobs: if: ${{ needs.discover.outputs.packages != '[]' }} runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem, type-ccx33] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] timeout-minutes: 30 strategy: fail-fast: false diff --git a/.github/workflows/fireactions-smoke.yml b/.github/workflows/fireactions-smoke.yml index 76f15bdca5..405b67d105 100644 --- a/.github/workflows/fireactions-smoke.yml +++ b/.github/workflows/fireactions-smoke.yml @@ -30,7 +30,7 @@ jobs: smoke: runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] + labels: [self-hosted, linux, x64, fireactions, fireactions-light] timeout-minutes: 30 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/hotfixes.yml b/.github/workflows/hotfixes.yml index c533169594..27c2837228 100644 --- a/.github/workflows/hotfixes.yml +++ b/.github/workflows/hotfixes.yml @@ -12,7 +12,7 @@ jobs: handle-hotfix-pr: runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] + labels: [self-hosted, linux, x64, fireactions, fireactions-light] steps: - name: Check if PR is a hotfix into `main` if: > diff --git a/.github/workflows/label-triggers.yml b/.github/workflows/label-triggers.yml index 4829a99800..1153e339c1 100644 --- a/.github/workflows/label-triggers.yml +++ b/.github/workflows/label-triggers.yml @@ -15,7 +15,7 @@ jobs: comment_on_breaking_change: runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] + labels: [self-hosted, linux, x64, fireactions, fireactions-light] steps: - name: Check if 'breaking change' label is added if: github.event.label.name == 'breaking-change' diff --git a/.github/workflows/require-clean-merges.yml b/.github/workflows/require-clean-merges.yml index de5c8a9500..47f4f6d8c4 100644 --- a/.github/workflows/require-clean-merges.yml +++ b/.github/workflows/require-clean-merges.yml @@ -11,7 +11,7 @@ jobs: assert-clean-merges: runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] + labels: [self-hosted, linux, x64, fireactions, fireactions-light] steps: - name: Checkout Repository uses: actions/checkout@v4 diff --git a/.github/workflows/rustdocs.yml b/.github/workflows/rustdocs.yml index acfcac08e2..ab1f2f1f27 100644 --- a/.github/workflows/rustdocs.yml +++ b/.github/workflows/rustdocs.yml @@ -18,7 +18,7 @@ jobs: build: runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] steps: - name: Checkout code @@ -59,7 +59,7 @@ jobs: needs: build runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] permissions: pages: write diff --git a/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml b/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml index a804d12df0..c15badddfb 100644 --- a/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml +++ b/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml @@ -1,3 +1,4 @@ +# TEMPORARY: Remove before merging to main/devnet-ready name: Test Fireactions Apply Benchmark Patch Dry-Run on: @@ -43,7 +44,7 @@ jobs: apply-dryrun: runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] + labels: [self-hosted, linux, x64, fireactions, fireactions-light] timeout-minutes: 30 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/test-fireactions-docker-dryrun.yml b/.github/workflows/test-fireactions-docker-dryrun.yml index 5b1e0e29cf..3d04375713 100644 --- a/.github/workflows/test-fireactions-docker-dryrun.yml +++ b/.github/workflows/test-fireactions-docker-dryrun.yml @@ -1,3 +1,4 @@ +# TEMPORARY: Remove before merging to main/devnet-ready name: Test Fireactions Docker Dry-Run on: @@ -34,7 +35,7 @@ jobs: publish-dryrun: runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] timeout-minutes: 45 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/test-fireactions-docker-localnet-dryrun.yml b/.github/workflows/test-fireactions-docker-localnet-dryrun.yml index eefbdfc954..af09088fdd 100644 --- a/.github/workflows/test-fireactions-docker-localnet-dryrun.yml +++ b/.github/workflows/test-fireactions-docker-localnet-dryrun.yml @@ -1,3 +1,4 @@ +# TEMPORARY: Remove before merging to main/devnet-ready name: Test Fireactions Docker Localnet Dry-Run on: @@ -35,7 +36,7 @@ jobs: setup: runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] + labels: [self-hosted, linux, x64, fireactions, fireactions-light] outputs: ref: ${{ steps.vars.outputs.ref }} tag: ${{ steps.vars.outputs.tag }} @@ -62,7 +63,7 @@ jobs: runtime: ["fast-runtime", "non-fast-runtime"] runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] timeout-minutes: 120 env: CARGO_BUILD_JOBS: 6 @@ -132,7 +133,7 @@ jobs: needs: [setup, artifacts] runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] timeout-minutes: 90 steps: - name: Checkout target ref diff --git a/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml b/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml index d8944f6a9b..33bdd21c78 100644 --- a/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml +++ b/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml @@ -1,3 +1,4 @@ +# TEMPORARY: Remove before merging to main/devnet-ready name: Test Fireactions Hotfixes and Labels Dry-Run on: @@ -65,7 +66,7 @@ jobs: payload-dryrun: runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] + labels: [self-hosted, linux, x64, fireactions, fireactions-light] timeout-minutes: 20 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/test-fireactions-noinstall-probes.yml b/.github/workflows/test-fireactions-noinstall-probes.yml index 033fae7136..150f6e4063 100644 --- a/.github/workflows/test-fireactions-noinstall-probes.yml +++ b/.github/workflows/test-fireactions-noinstall-probes.yml @@ -1,3 +1,4 @@ +# TEMPORARY: Remove before merging to main/devnet-ready name: Test Fireactions No-Install Probes on: @@ -30,7 +31,7 @@ jobs: probes: runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-low] + labels: [self-hosted, linux, x64, fireactions, fireactions-light] timeout-minutes: 20 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/test-fireactions-rustdocs-dryrun.yml b/.github/workflows/test-fireactions-rustdocs-dryrun.yml index effb81b62b..163ba3aa49 100644 --- a/.github/workflows/test-fireactions-rustdocs-dryrun.yml +++ b/.github/workflows/test-fireactions-rustdocs-dryrun.yml @@ -1,3 +1,4 @@ +# TEMPORARY: Remove before merging to main/devnet-ready name: Test Fireactions Rustdocs Dry-Run on: @@ -33,7 +34,7 @@ jobs: build-docs-dryrun: runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] + labels: [self-hosted, linux, x64, fireactions, fireactions-light] timeout-minutes: 90 env: CARGO_BUILD_JOBS: 4 diff --git a/.github/workflows/test-fireactions-update-chainspec-dryrun.yml b/.github/workflows/test-fireactions-update-chainspec-dryrun.yml index 5fb30fdd14..757c0ef357 100644 --- a/.github/workflows/test-fireactions-update-chainspec-dryrun.yml +++ b/.github/workflows/test-fireactions-update-chainspec-dryrun.yml @@ -1,3 +1,4 @@ +# TEMPORARY: Remove before merging to main/devnet-ready name: Test Fireactions Update Chainspec Dry-Run on: @@ -33,7 +34,7 @@ jobs: update-chainspecs-dryrun: runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] timeout-minutes: 120 env: CARGO_TERM_COLOR: always diff --git a/.github/workflows/test-fireactions-validation-suite.yml b/.github/workflows/test-fireactions-validation-suite.yml index 419b2d50ff..cec8d1cfaf 100644 --- a/.github/workflows/test-fireactions-validation-suite.yml +++ b/.github/workflows/test-fireactions-validation-suite.yml @@ -1,3 +1,4 @@ +# TEMPORARY: Remove before merging to main/devnet-ready name: Test Fireactions Validation Suite on: diff --git a/.github/workflows/try-runtime.yml b/.github/workflows/try-runtime.yml index 9984ee46c7..bf947889dc 100644 --- a/.github/workflows/try-runtime.yml +++ b/.github/workflows/try-runtime.yml @@ -16,7 +16,7 @@ jobs: if: github.base_ref != 'main' runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] env: CARGO_BUILD_JOBS: 6 steps: @@ -51,7 +51,7 @@ jobs: if: github.base_ref != 'main' runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] env: CARGO_BUILD_JOBS: 6 steps: @@ -86,7 +86,7 @@ jobs: # if: github.base_ref == 'testnet' || github.base_ref == 'devnet' || github.base_ref == 'main' runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highperf] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] env: CARGO_BUILD_JOBS: 6 steps: diff --git a/.github/workflows/update-chainspec.yml b/.github/workflows/update-chainspec.yml index f434f6fe3c..e4a2d77523 100644 --- a/.github/workflows/update-chainspec.yml +++ b/.github/workflows/update-chainspec.yml @@ -21,7 +21,7 @@ jobs: update-chainspecs: runs-on: group: fireactions - labels: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-standard] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] permissions: contents: write if: > From ccfbd2277a0c59c5ceef44cc6aa887eed1aac795 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Sat, 7 Mar 2026 21:04:28 +0100 Subject: [PATCH 55/62] ci: pin Contract E2E to AX102 8c64g isolated benchmark runner MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Temporary change to route Contract E2E tests to an isolated AX102 runner (1×8c64g) for benchmarking. Will revert after collecting timing data. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/contract-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/contract-tests.yml b/.github/workflows/contract-tests.yml index 497763a202..91c96151a6 100644 --- a/.github/workflows/contract-tests.yml +++ b/.github/workflows/contract-tests.yml @@ -26,7 +26,7 @@ jobs: run: runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, linux, x64, fireactions-bench-ax102-8c64g, fireactions-heavy] env: RUST_BACKTRACE: full CARGO_BUILD_JOBS: 6 From 83b2279cf6a6ec7e1a972b6c03096350844733ae Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Sat, 7 Mar 2026 22:47:38 +0100 Subject: [PATCH 56/62] ci: pin Contract E2E to AX102 16c128g, disable retries Test B: 16c128g isolated benchmark on AX102. Retries reduced to 1 to avoid wasting 3x time on the known flaky pure-proxy test. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/contract-tests.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/contract-tests.yml b/.github/workflows/contract-tests.yml index 91c96151a6..9d1b816331 100644 --- a/.github/workflows/contract-tests.yml +++ b/.github/workflows/contract-tests.yml @@ -26,7 +26,7 @@ jobs: run: runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions-bench-ax102-8c64g, fireactions-heavy] + labels: [self-hosted, linux, x64, fireactions-bench-ax102-16c128g, fireactions-heavy] env: RUST_BACKTRACE: full CARGO_BUILD_JOBS: 6 @@ -56,8 +56,7 @@ jobs: uses: nick-fields/retry@v3 with: timeout_minutes: 120 - max_attempts: 3 - retry_wait_seconds: 60 + max_attempts: 1 command: | cd ${{ github.workspace }} npm install --global yarn From eceb05ddabd87cb8a6a0681eb12d50db49738df9 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Sun, 8 Mar 2026 00:00:08 +0100 Subject: [PATCH 57/62] ci: route try-runtime to dedicated AX102 pool, revert contract-tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - try-runtime.yml: all 3 jobs now use fireactions-tryruntime label (3×8c64g on AX102, dedicated Ryzen 9 7950X for IPC advantage) - contract-tests.yml: reverted to fireactions-heavy label and restored 3 retries after isolated AX102 benchmarking complete Co-Authored-By: Claude Opus 4.6 --- .github/workflows/contract-tests.yml | 5 +++-- .github/workflows/try-runtime.yml | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/contract-tests.yml b/.github/workflows/contract-tests.yml index 9d1b816331..497763a202 100644 --- a/.github/workflows/contract-tests.yml +++ b/.github/workflows/contract-tests.yml @@ -26,7 +26,7 @@ jobs: run: runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions-bench-ax102-16c128g, fireactions-heavy] + labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] env: RUST_BACKTRACE: full CARGO_BUILD_JOBS: 6 @@ -56,7 +56,8 @@ jobs: uses: nick-fields/retry@v3 with: timeout_minutes: 120 - max_attempts: 1 + max_attempts: 3 + retry_wait_seconds: 60 command: | cd ${{ github.workspace }} npm install --global yarn diff --git a/.github/workflows/try-runtime.yml b/.github/workflows/try-runtime.yml index bf947889dc..bf9d36f81e 100644 --- a/.github/workflows/try-runtime.yml +++ b/.github/workflows/try-runtime.yml @@ -16,7 +16,7 @@ jobs: if: github.base_ref != 'main' runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, linux, x64, fireactions, fireactions-tryruntime] env: CARGO_BUILD_JOBS: 6 steps: @@ -51,7 +51,7 @@ jobs: if: github.base_ref != 'main' runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, linux, x64, fireactions, fireactions-tryruntime] env: CARGO_BUILD_JOBS: 6 steps: @@ -86,7 +86,7 @@ jobs: # if: github.base_ref == 'testnet' || github.base_ref == 'devnet' || github.base_ref == 'main' runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, linux, x64, fireactions, fireactions-tryruntime] env: CARGO_BUILD_JOBS: 6 steps: From 3785c6548a41e140628ea1337cfdc102573274fb Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Sun, 8 Mar 2026 00:35:55 +0100 Subject: [PATCH 58/62] =?UTF-8?q?ci:=20split=20try-runtime=20pools=20?= =?UTF-8?q?=E2=80=94=2016c=20for=20finney,=204c=20for=20devnet/testnet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Finney gets dedicated 16c64g runner on AX102, devnet/testnet share 2×4c32g runners. Prioritizes finney (longest job) while keeping total vCPU at 24 (same as before, just redistributed). Co-Authored-By: Claude Opus 4.6 --- .github/workflows/try-runtime.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/try-runtime.yml b/.github/workflows/try-runtime.yml index bf9d36f81e..4695106011 100644 --- a/.github/workflows/try-runtime.yml +++ b/.github/workflows/try-runtime.yml @@ -86,7 +86,7 @@ jobs: # if: github.base_ref == 'testnet' || github.base_ref == 'devnet' || github.base_ref == 'main' runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-tryruntime] + labels: [self-hosted, linux, x64, fireactions, fireactions-tryruntime-finney] env: CARGO_BUILD_JOBS: 6 steps: From a67ff416a40ec51f25a20601fdc7e5fa1fff1a66 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Sun, 8 Mar 2026 01:05:25 +0100 Subject: [PATCH 59/62] ci: trigger concurrent try-runtime run with fa-* pool names From 2480e3b02f2f798f711c99755a0ecd98ba5b32fc Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Sun, 8 Mar 2026 01:55:50 +0100 Subject: [PATCH 60/62] ci: trigger try-runtime with 8c finney + 2x4c devnet/testnet (zero oversubscription) From 517e5ea9504333eb06f58648ccd324a3cfd3ed2b Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Sun, 8 Mar 2026 02:37:00 +0100 Subject: [PATCH 61/62] ci: simplify workflow runner labels Remove redundant linux, x64, and fireactions labels from runs-on blocks. All fireactions-heavy/light/tryruntime runners already have these labels, so specifying them adds no filtering value. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/cargo-audit.yml | 2 +- .github/workflows/check-devnet.yml | 2 +- .github/workflows/check-docker.yml | 2 +- .github/workflows/check-finney.yml | 2 +- .github/workflows/check-node-compat.yml | 4 ++-- .github/workflows/check-rust.yml | 14 +++++++------- .github/workflows/check-testnet.yml | 2 +- .github/workflows/contract-tests.yml | 2 +- .github/workflows/docker-localnet.yml | 4 ++-- .github/workflows/docker.yml | 2 +- .github/workflows/e2e.yml | 4 ++-- .github/workflows/fireactions-smoke.yml | 2 +- .github/workflows/hotfixes.yml | 2 +- .github/workflows/label-triggers.yml | 2 +- .github/workflows/require-clean-merges.yml | 2 +- .github/workflows/rustdocs.yml | 4 ++-- ...st-fireactions-apply-benchmark-patch-dryrun.yml | 2 +- .../workflows/test-fireactions-docker-dryrun.yml | 2 +- .../test-fireactions-docker-localnet-dryrun.yml | 6 +++--- .../test-fireactions-hotfixes-labels-dryrun.yml | 2 +- .../test-fireactions-noinstall-probes.yml | 2 +- .../workflows/test-fireactions-rustdocs-dryrun.yml | 2 +- .../test-fireactions-update-chainspec-dryrun.yml | 2 +- .github/workflows/try-runtime.yml | 6 +++--- .github/workflows/update-chainspec.yml | 2 +- 25 files changed, 39 insertions(+), 39 deletions(-) diff --git a/.github/workflows/cargo-audit.yml b/.github/workflows/cargo-audit.yml index 24ebe301bb..a79cc6825d 100644 --- a/.github/workflows/cargo-audit.yml +++ b/.github/workflows/cargo-audit.yml @@ -15,7 +15,7 @@ jobs: name: cargo audit runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-light] + labels: [self-hosted, fireactions-light] env: CARGO_BUILD_JOBS: 4 if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip-cargo-audit') }} diff --git a/.github/workflows/check-devnet.yml b/.github/workflows/check-devnet.yml index 51e23c1722..fcc6e78484 100644 --- a/.github/workflows/check-devnet.yml +++ b/.github/workflows/check-devnet.yml @@ -18,7 +18,7 @@ jobs: name: Check spec_version bump runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, fireactions-heavy] if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-spec-version-bump') }} steps: - name: Dependencies diff --git a/.github/workflows/check-docker.yml b/.github/workflows/check-docker.yml index 1d2617dff0..3363162f10 100644 --- a/.github/workflows/check-docker.yml +++ b/.github/workflows/check-docker.yml @@ -11,7 +11,7 @@ jobs: build: runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, fireactions-heavy] steps: - name: Checkout code diff --git a/.github/workflows/check-finney.yml b/.github/workflows/check-finney.yml index 74d143a0fb..b55603b1af 100644 --- a/.github/workflows/check-finney.yml +++ b/.github/workflows/check-finney.yml @@ -18,7 +18,7 @@ jobs: name: Check spec_version bump runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, fireactions-heavy] if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-spec-version-bump') }} steps: - name: Dependencies diff --git a/.github/workflows/check-node-compat.yml b/.github/workflows/check-node-compat.yml index f6b46d552d..f4ddd2e395 100644 --- a/.github/workflows/check-node-compat.yml +++ b/.github/workflows/check-node-compat.yml @@ -18,7 +18,7 @@ jobs: name: build ${{ matrix.version.name }} runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, fireactions-heavy] if: contains(github.event.pull_request.labels.*.name, 'check-node-compat') env: RUST_BACKTRACE: full @@ -67,7 +67,7 @@ jobs: needs: [build] runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, fireactions-heavy] steps: - name: Download old node binary uses: actions/download-artifact@v4 diff --git a/.github/workflows/check-rust.yml b/.github/workflows/check-rust.yml index e46113b0ed..9f4dad05ce 100644 --- a/.github/workflows/check-rust.yml +++ b/.github/workflows/check-rust.yml @@ -25,7 +25,7 @@ jobs: name: cargo fmt runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-light] + labels: [self-hosted, fireactions-light] env: RUST_BACKTRACE: full CARGO_BUILD_JOBS: 2 @@ -72,7 +72,7 @@ jobs: name: cargo clippy runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, fireactions-heavy] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 @@ -105,7 +105,7 @@ jobs: name: check custom lints runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-light] + labels: [self-hosted, fireactions-light] env: RUSTFLAGS: -D warnings RUST_BACKTRACE: full @@ -141,7 +141,7 @@ jobs: name: cargo clippy --all-features runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, fireactions-heavy] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 @@ -175,7 +175,7 @@ jobs: name: cargo test runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, fireactions-heavy] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 @@ -208,7 +208,7 @@ jobs: name: cargo fix runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, fireactions-heavy] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 @@ -250,7 +250,7 @@ jobs: name: zepter run check runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-light] + labels: [self-hosted, fireactions-light] env: CARGO_BUILD_JOBS: 4 diff --git a/.github/workflows/check-testnet.yml b/.github/workflows/check-testnet.yml index a938a69c19..33cf89ef2e 100644 --- a/.github/workflows/check-testnet.yml +++ b/.github/workflows/check-testnet.yml @@ -18,7 +18,7 @@ jobs: name: Check spec_version bump runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, fireactions-heavy] if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-spec-version-bump') }} steps: - name: Dependencies diff --git a/.github/workflows/contract-tests.yml b/.github/workflows/contract-tests.yml index 497763a202..ffbba982f4 100644 --- a/.github/workflows/contract-tests.yml +++ b/.github/workflows/contract-tests.yml @@ -26,7 +26,7 @@ jobs: run: runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, fireactions-heavy] env: RUST_BACKTRACE: full CARGO_BUILD_JOBS: 6 diff --git a/.github/workflows/docker-localnet.yml b/.github/workflows/docker-localnet.yml index b825bee24c..e379c1ef55 100644 --- a/.github/workflows/docker-localnet.yml +++ b/.github/workflows/docker-localnet.yml @@ -102,7 +102,7 @@ jobs: runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, fireactions-heavy] env: CARGO_BUILD_JOBS: 6 @@ -164,7 +164,7 @@ jobs: needs: [setup, artifacts] runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, fireactions-heavy] defaults: run: working-directory: ${{ github.workspace }} diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 6d40c7b23e..11d2a32dc8 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -29,7 +29,7 @@ jobs: publish: runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, fireactions-heavy] steps: - name: Determine Docker tag and ref diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 1b5b49cff8..3dffe9a36c 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -21,7 +21,7 @@ jobs: build: runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, fireactions-heavy] timeout-minutes: 60 strategy: matrix: @@ -99,7 +99,7 @@ jobs: if: ${{ needs.discover.outputs.packages != '[]' }} runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, fireactions-heavy] timeout-minutes: 30 strategy: fail-fast: false diff --git a/.github/workflows/fireactions-smoke.yml b/.github/workflows/fireactions-smoke.yml index 405b67d105..7404bd043b 100644 --- a/.github/workflows/fireactions-smoke.yml +++ b/.github/workflows/fireactions-smoke.yml @@ -30,7 +30,7 @@ jobs: smoke: runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-light] + labels: [self-hosted, fireactions-light] timeout-minutes: 30 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/hotfixes.yml b/.github/workflows/hotfixes.yml index 27c2837228..933158e1e2 100644 --- a/.github/workflows/hotfixes.yml +++ b/.github/workflows/hotfixes.yml @@ -12,7 +12,7 @@ jobs: handle-hotfix-pr: runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-light] + labels: [self-hosted, fireactions-light] steps: - name: Check if PR is a hotfix into `main` if: > diff --git a/.github/workflows/label-triggers.yml b/.github/workflows/label-triggers.yml index 1153e339c1..be73e85f9c 100644 --- a/.github/workflows/label-triggers.yml +++ b/.github/workflows/label-triggers.yml @@ -15,7 +15,7 @@ jobs: comment_on_breaking_change: runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-light] + labels: [self-hosted, fireactions-light] steps: - name: Check if 'breaking change' label is added if: github.event.label.name == 'breaking-change' diff --git a/.github/workflows/require-clean-merges.yml b/.github/workflows/require-clean-merges.yml index 47f4f6d8c4..e8a1d74dae 100644 --- a/.github/workflows/require-clean-merges.yml +++ b/.github/workflows/require-clean-merges.yml @@ -11,7 +11,7 @@ jobs: assert-clean-merges: runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-light] + labels: [self-hosted, fireactions-light] steps: - name: Checkout Repository uses: actions/checkout@v4 diff --git a/.github/workflows/rustdocs.yml b/.github/workflows/rustdocs.yml index ab1f2f1f27..5c0768a010 100644 --- a/.github/workflows/rustdocs.yml +++ b/.github/workflows/rustdocs.yml @@ -18,7 +18,7 @@ jobs: build: runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, fireactions-heavy] steps: - name: Checkout code @@ -59,7 +59,7 @@ jobs: needs: build runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, fireactions-heavy] permissions: pages: write diff --git a/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml b/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml index c15badddfb..b4a643e2c3 100644 --- a/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml +++ b/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml @@ -44,7 +44,7 @@ jobs: apply-dryrun: runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-light] + labels: [self-hosted, fireactions-light] timeout-minutes: 30 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/test-fireactions-docker-dryrun.yml b/.github/workflows/test-fireactions-docker-dryrun.yml index 3d04375713..ba78b9905b 100644 --- a/.github/workflows/test-fireactions-docker-dryrun.yml +++ b/.github/workflows/test-fireactions-docker-dryrun.yml @@ -35,7 +35,7 @@ jobs: publish-dryrun: runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, fireactions-heavy] timeout-minutes: 45 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/test-fireactions-docker-localnet-dryrun.yml b/.github/workflows/test-fireactions-docker-localnet-dryrun.yml index af09088fdd..0920f7830a 100644 --- a/.github/workflows/test-fireactions-docker-localnet-dryrun.yml +++ b/.github/workflows/test-fireactions-docker-localnet-dryrun.yml @@ -36,7 +36,7 @@ jobs: setup: runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-light] + labels: [self-hosted, fireactions-light] outputs: ref: ${{ steps.vars.outputs.ref }} tag: ${{ steps.vars.outputs.tag }} @@ -63,7 +63,7 @@ jobs: runtime: ["fast-runtime", "non-fast-runtime"] runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, fireactions-heavy] timeout-minutes: 120 env: CARGO_BUILD_JOBS: 6 @@ -133,7 +133,7 @@ jobs: needs: [setup, artifacts] runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, fireactions-heavy] timeout-minutes: 90 steps: - name: Checkout target ref diff --git a/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml b/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml index 33bdd21c78..b7d1ddecdd 100644 --- a/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml +++ b/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml @@ -66,7 +66,7 @@ jobs: payload-dryrun: runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-light] + labels: [self-hosted, fireactions-light] timeout-minutes: 20 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/test-fireactions-noinstall-probes.yml b/.github/workflows/test-fireactions-noinstall-probes.yml index 150f6e4063..1ddbf4ed42 100644 --- a/.github/workflows/test-fireactions-noinstall-probes.yml +++ b/.github/workflows/test-fireactions-noinstall-probes.yml @@ -31,7 +31,7 @@ jobs: probes: runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-light] + labels: [self-hosted, fireactions-light] timeout-minutes: 20 steps: - name: Enforce dry-run mode diff --git a/.github/workflows/test-fireactions-rustdocs-dryrun.yml b/.github/workflows/test-fireactions-rustdocs-dryrun.yml index 163ba3aa49..f6a26d0f51 100644 --- a/.github/workflows/test-fireactions-rustdocs-dryrun.yml +++ b/.github/workflows/test-fireactions-rustdocs-dryrun.yml @@ -34,7 +34,7 @@ jobs: build-docs-dryrun: runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-light] + labels: [self-hosted, fireactions-light] timeout-minutes: 90 env: CARGO_BUILD_JOBS: 4 diff --git a/.github/workflows/test-fireactions-update-chainspec-dryrun.yml b/.github/workflows/test-fireactions-update-chainspec-dryrun.yml index 757c0ef357..d611b66f61 100644 --- a/.github/workflows/test-fireactions-update-chainspec-dryrun.yml +++ b/.github/workflows/test-fireactions-update-chainspec-dryrun.yml @@ -34,7 +34,7 @@ jobs: update-chainspecs-dryrun: runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, fireactions-heavy] timeout-minutes: 120 env: CARGO_TERM_COLOR: always diff --git a/.github/workflows/try-runtime.yml b/.github/workflows/try-runtime.yml index 4695106011..0287397832 100644 --- a/.github/workflows/try-runtime.yml +++ b/.github/workflows/try-runtime.yml @@ -16,7 +16,7 @@ jobs: if: github.base_ref != 'main' runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-tryruntime] + labels: [self-hosted, fireactions-tryruntime] env: CARGO_BUILD_JOBS: 6 steps: @@ -51,7 +51,7 @@ jobs: if: github.base_ref != 'main' runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-tryruntime] + labels: [self-hosted, fireactions-tryruntime] env: CARGO_BUILD_JOBS: 6 steps: @@ -86,7 +86,7 @@ jobs: # if: github.base_ref == 'testnet' || github.base_ref == 'devnet' || github.base_ref == 'main' runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-tryruntime-finney] + labels: [self-hosted, fireactions-tryruntime-finney] env: CARGO_BUILD_JOBS: 6 steps: diff --git a/.github/workflows/update-chainspec.yml b/.github/workflows/update-chainspec.yml index e4a2d77523..d230ba1ee1 100644 --- a/.github/workflows/update-chainspec.yml +++ b/.github/workflows/update-chainspec.yml @@ -21,7 +21,7 @@ jobs: update-chainspecs: runs-on: group: fireactions - labels: [self-hosted, linux, x64, fireactions, fireactions-heavy] + labels: [self-hosted, fireactions-heavy] permissions: contents: write if: > From f2336660b88e702328af4ab80dd8133e4a6b9c93 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Sun, 8 Mar 2026 03:30:15 +0100 Subject: [PATCH 62/62] Align workflows with devnet-ready --- .github/workflows/cargo-audit.yml | 6 +- .../workflows/check-bittensor-e2e-tests.yml | 8 +- .github/workflows/check-devnet.yml | 7 +- .github/workflows/check-docker.yml | 4 +- .github/workflows/check-finney.yml | 9 +- .github/workflows/check-node-compat.yml | 17 +- .github/workflows/check-rust.yml | 38 +--- .github/workflows/check-testnet.yml | 9 +- .github/workflows/contract-tests.yml | 7 +- .github/workflows/docker-localnet.yml | 16 +- .github/workflows/docker.yml | 4 +- .github/workflows/e2e.yml | 8 +- .github/workflows/fireactions-smoke.yml | 86 --------- .github/workflows/hotfixes.yml | 4 +- .github/workflows/label-triggers.yml | 4 +- .github/workflows/require-clean-merges.yml | 4 +- .github/workflows/run-benchmarks.yml | 1 - .github/workflows/rustdocs.yml | 9 +- ...reactions-apply-benchmark-patch-dryrun.yml | 133 -------------- .../test-fireactions-docker-dryrun.yml | 73 -------- ...est-fireactions-docker-localnet-dryrun.yml | 172 ------------------ ...est-fireactions-hotfixes-labels-dryrun.yml | 138 -------------- .../test-fireactions-noinstall-probes.yml | 170 ----------------- .../test-fireactions-rustdocs-dryrun.yml | 83 --------- ...st-fireactions-update-chainspec-dryrun.yml | 105 ----------- .../test-fireactions-validation-suite.yml | 112 ------------ .github/workflows/try-runtime.yml | 18 +- .github/workflows/update-chainspec.yml | 7 +- 28 files changed, 47 insertions(+), 1205 deletions(-) delete mode 100644 .github/workflows/fireactions-smoke.yml delete mode 100644 .github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml delete mode 100644 .github/workflows/test-fireactions-docker-dryrun.yml delete mode 100644 .github/workflows/test-fireactions-docker-localnet-dryrun.yml delete mode 100644 .github/workflows/test-fireactions-hotfixes-labels-dryrun.yml delete mode 100644 .github/workflows/test-fireactions-noinstall-probes.yml delete mode 100644 .github/workflows/test-fireactions-rustdocs-dryrun.yml delete mode 100644 .github/workflows/test-fireactions-update-chainspec-dryrun.yml delete mode 100644 .github/workflows/test-fireactions-validation-suite.yml diff --git a/.github/workflows/cargo-audit.yml b/.github/workflows/cargo-audit.yml index a79cc6825d..c706c8223e 100644 --- a/.github/workflows/cargo-audit.yml +++ b/.github/workflows/cargo-audit.yml @@ -13,11 +13,7 @@ concurrency: jobs: cargo-audit: name: cargo audit - runs-on: - group: fireactions - labels: [self-hosted, fireactions-light] - env: - CARGO_BUILD_JOBS: 4 + runs-on: [self-hosted, fireactions-light] if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip-cargo-audit') }} steps: - name: Check-out repositoroy under $GITHUB_WORKSPACE diff --git a/.github/workflows/check-bittensor-e2e-tests.yml b/.github/workflows/check-bittensor-e2e-tests.yml index b74505f391..dea4c4ea9f 100644 --- a/.github/workflows/check-bittensor-e2e-tests.yml +++ b/.github/workflows/check-bittensor-e2e-tests.yml @@ -190,16 +190,12 @@ jobs: strategy: matrix: platform: - - runner: [self-hosted, fireactions-bench, fireactions-bench-pr2483, fireactions-highmem] + - runner: [self-hosted, fireactions-heavy] triple: x86_64-unknown-linux-gnu arch: amd64 runtime: ["fast-runtime", "non-fast-runtime"] - runs-on: - group: fireactions - labels: ${{ matrix.platform.runner }} - env: - CARGO_BUILD_JOBS: 6 + runs-on: ${{ matrix.platform.runner }} steps: - name: Checkout code diff --git a/.github/workflows/check-devnet.yml b/.github/workflows/check-devnet.yml index fcc6e78484..d6014bc009 100644 --- a/.github/workflows/check-devnet.yml +++ b/.github/workflows/check-devnet.yml @@ -11,20 +11,17 @@ concurrency: env: CARGO_TERM_COLOR: always - CARGO_BUILD_JOBS: 4 jobs: check-spec-version: name: Check spec_version bump - runs-on: - group: fireactions - labels: [self-hosted, fireactions-heavy] + runs-on: [self-hosted, fireactions-heavy] if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-spec-version-bump') }} steps: - name: Dependencies run: | sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl libssl-dev llvm libudev-dev protobuf-compiler pkg-config bc + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl libssl-dev llvm libudev-dev protobuf-compiler pkg-config - name: Install Rust uses: actions-rs/toolchain@v1 diff --git a/.github/workflows/check-docker.yml b/.github/workflows/check-docker.yml index 3363162f10..98a14eb659 100644 --- a/.github/workflows/check-docker.yml +++ b/.github/workflows/check-docker.yml @@ -9,9 +9,7 @@ concurrency: jobs: build: - runs-on: - group: fireactions - labels: [self-hosted, fireactions-heavy] + runs-on: [self-hosted, fireactions-heavy] steps: - name: Checkout code diff --git a/.github/workflows/check-finney.yml b/.github/workflows/check-finney.yml index b55603b1af..2936e3052a 100644 --- a/.github/workflows/check-finney.yml +++ b/.github/workflows/check-finney.yml @@ -2,7 +2,7 @@ name: Finney Deploy Check on: pull_request: - branches: [finney, main, devnet-ready] + branches: [finney, main] types: [labeled, unlabeled, synchronize, opened] concurrency: @@ -11,20 +11,17 @@ concurrency: env: CARGO_TERM_COLOR: always - CARGO_BUILD_JOBS: 4 jobs: check-spec-version: name: Check spec_version bump - runs-on: - group: fireactions - labels: [self-hosted, fireactions-heavy] + runs-on: [self-hosted, fireactions-heavy] if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-spec-version-bump') }} steps: - name: Dependencies run: | sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl libssl-dev llvm libudev-dev protobuf-compiler pkg-config bc + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl libssl-dev llvm libudev-dev protobuf-compiler pkg-config - name: Install Rust uses: actions-rs/toolchain@v1 diff --git a/.github/workflows/check-node-compat.yml b/.github/workflows/check-node-compat.yml index f4ddd2e395..30495b45f2 100644 --- a/.github/workflows/check-node-compat.yml +++ b/.github/workflows/check-node-compat.yml @@ -2,7 +2,7 @@ name: Check Node Compat on: pull_request: - types: [labeled, synchronize, opened, reopened] + types: [labeled] branches: [devnet-ready] concurrency: @@ -11,24 +11,19 @@ concurrency: env: CARGO_TERM_COLOR: always - CARGO_BUILD_JOBS: 4 jobs: build: name: build ${{ matrix.version.name }} - runs-on: - group: fireactions - labels: [self-hosted, fireactions-heavy] + runs-on: [self-hosted, fireactions-heavy] if: contains(github.event.pull_request.labels.*.name, 'check-node-compat') env: RUST_BACKTRACE: full strategy: matrix: version: - - name: old - ref: "devnet-ready" - - name: new - ref: ${{ github.head_ref }} + - { name: old, ref: devnet-ready } + - { name: new, ref: ${{ github.head_ref }} } steps: - name: Install dependencies @@ -65,9 +60,7 @@ jobs: test: needs: [build] - runs-on: - group: fireactions - labels: [self-hosted, fireactions-heavy] + runs-on: [self-hosted, fireactions-heavy] steps: - name: Download old node binary uses: actions/download-artifact@v4 diff --git a/.github/workflows/check-rust.yml b/.github/workflows/check-rust.yml index 9f4dad05ce..3c0fcaa8b7 100644 --- a/.github/workflows/check-rust.yml +++ b/.github/workflows/check-rust.yml @@ -17,18 +17,15 @@ on: env: CARGO_TERM_COLOR: always - VERBOSE: ${{ github.event.inputs.verbose }} + VERBOSE: ${{ github.events.input.verbose }} jobs: # runs cargo fmt cargo-fmt: name: cargo fmt - runs-on: - group: fireactions - labels: [self-hosted, fireactions-light] + runs-on: [self-hosted, fireactions-light] env: RUST_BACKTRACE: full - CARGO_BUILD_JOBS: 2 steps: - name: Check-out repository under $GITHUB_WORKSPACE uses: actions/checkout@v4 @@ -70,13 +67,10 @@ jobs: cargo-clippy-default-features: name: cargo clippy - runs-on: - group: fireactions - labels: [self-hosted, fireactions-heavy] + runs-on: [self-hosted, fireactions-light] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 - CARGO_BUILD_JOBS: 6 steps: - name: Check-out repository under $GITHUB_WORKSPACE uses: actions/checkout@v4 @@ -103,14 +97,11 @@ jobs: cargo-check-lints: name: check custom lints - runs-on: - group: fireactions - labels: [self-hosted, fireactions-light] + runs-on: [self-hosted, fireactions-light] env: RUSTFLAGS: -D warnings RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 - CARGO_BUILD_JOBS: 4 steps: - name: Check-out repository under $GITHUB_WORKSPACE uses: actions/checkout@v4 @@ -139,13 +130,10 @@ jobs: cargo-clippy-all-features: name: cargo clippy --all-features - runs-on: - group: fireactions - labels: [self-hosted, fireactions-heavy] + runs-on: [self-hosted, fireactions-light] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 - CARGO_BUILD_JOBS: 6 steps: - name: Check-out repository under $GITHUB_WORKSPACE uses: actions/checkout@v4 @@ -173,13 +161,10 @@ jobs: # runs cargo test --workspace --all-features cargo-test: name: cargo test - runs-on: - group: fireactions - labels: [self-hosted, fireactions-heavy] + runs-on: [self-hosted, fireactions-heavy] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 - CARGO_BUILD_JOBS: 6 steps: - name: Check-out repository under $GITHUB_WORKSPACE uses: actions/checkout@v4 @@ -206,13 +191,10 @@ jobs: # ensures cargo fix has no trivial changes that can be applied cargo-fix: name: cargo fix - runs-on: - group: fireactions - labels: [self-hosted, fireactions-heavy] + runs-on: [self-hosted, fireactions-light] env: RUST_BACKTRACE: full SKIP_WASM_BUILD: 1 - CARGO_BUILD_JOBS: 6 steps: - name: Check-out repository under $GITHUB_WORKSPACE uses: actions/checkout@v4 @@ -248,11 +230,7 @@ jobs: check-feature-propagation: name: zepter run check - runs-on: - group: fireactions - labels: [self-hosted, fireactions-light] - env: - CARGO_BUILD_JOBS: 4 + runs-on: [self-hosted, fireactions-light] steps: - name: Checkout diff --git a/.github/workflows/check-testnet.yml b/.github/workflows/check-testnet.yml index 33cf89ef2e..9d6f168109 100644 --- a/.github/workflows/check-testnet.yml +++ b/.github/workflows/check-testnet.yml @@ -2,7 +2,7 @@ name: Testnet Deploy Check on: pull_request: - branches: [testnet, testnet-ready, devnet-ready] + branches: [testnet, testnet-ready] types: [labeled, unlabeled, synchronize, opened] concurrency: @@ -11,20 +11,17 @@ concurrency: env: CARGO_TERM_COLOR: always - CARGO_BUILD_JOBS: 4 jobs: check-spec-version: name: Check spec_version bump - runs-on: - group: fireactions - labels: [self-hosted, fireactions-heavy] + runs-on: [self-hosted, fireactions-heavy] if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-spec-version-bump') }} steps: - name: Dependencies run: | sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update - sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl libssl-dev llvm libudev-dev protobuf-compiler pkg-config bc + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl libssl-dev llvm libudev-dev protobuf-compiler pkg-config - name: Install Rust uses: actions-rs/toolchain@v1 diff --git a/.github/workflows/contract-tests.yml b/.github/workflows/contract-tests.yml index ffbba982f4..a8182097a7 100644 --- a/.github/workflows/contract-tests.yml +++ b/.github/workflows/contract-tests.yml @@ -17,19 +17,16 @@ concurrency: env: CARGO_TERM_COLOR: always - VERBOSE: ${{ github.event.inputs.verbose }} + VERBOSE: ${{ github.events.input.verbose }} permissions: contents: read jobs: run: - runs-on: - group: fireactions - labels: [self-hosted, fireactions-heavy] + runs-on: [self-hosted, fireactions-light] env: RUST_BACKTRACE: full - CARGO_BUILD_JOBS: 6 steps: - name: Check-out repository under $GITHUB_WORKSPACE uses: actions/checkout@v4 diff --git a/.github/workflows/docker-localnet.yml b/.github/workflows/docker-localnet.yml index e379c1ef55..1d5d246d05 100644 --- a/.github/workflows/docker-localnet.yml +++ b/.github/workflows/docker-localnet.yml @@ -95,16 +95,16 @@ jobs: matrix: platform: # triple names used `in scripts/install_prebuilt_binaries.sh` file - - triple: x86_64-unknown-linux-gnu + - runner: [self-hosted, fireactions-heavy] + triple: x86_64-unknown-linux-gnu arch: amd64 + - runner: [ubuntu-24.04-arm] + triple: aarch64-unknown-linux-gnu + arch: arm64 runtime: ["fast-runtime", "non-fast-runtime"] - runs-on: - group: fireactions - labels: [self-hosted, fireactions-heavy] - env: - CARGO_BUILD_JOBS: 6 + runs-on: ${{ matrix.platform.runner }} steps: - name: Checkout code @@ -162,9 +162,7 @@ jobs: # Collect all artifacts and publish them to docker repo docker: needs: [setup, artifacts] - runs-on: - group: fireactions - labels: [self-hosted, fireactions-heavy] + runs-on: [self-hosted, fireactions-heavy] defaults: run: working-directory: ${{ github.workspace }} diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 11d2a32dc8..9f2de4ec88 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -27,9 +27,7 @@ permissions: jobs: publish: - runs-on: - group: fireactions - labels: [self-hosted, fireactions-heavy] + runs-on: [self-hosted, fireactions-heavy] steps: - name: Determine Docker tag and ref diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 3dffe9a36c..38fcc74ec7 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -19,9 +19,7 @@ permissions: jobs: # Build the node binary in both variants and share as artifacts. build: - runs-on: - group: fireactions - labels: [self-hosted, fireactions-heavy] + runs-on: [self-hosted, fireactions-heavy] timeout-minutes: 60 strategy: matrix: @@ -97,9 +95,7 @@ jobs: test: needs: [build, discover] if: ${{ needs.discover.outputs.packages != '[]' }} - runs-on: - group: fireactions - labels: [self-hosted, fireactions-heavy] + runs-on: [self-hosted, fireactions-heavy] timeout-minutes: 30 strategy: fail-fast: false diff --git a/.github/workflows/fireactions-smoke.yml b/.github/workflows/fireactions-smoke.yml deleted file mode 100644 index 7404bd043b..0000000000 --- a/.github/workflows/fireactions-smoke.yml +++ /dev/null @@ -1,86 +0,0 @@ -name: Fireactions Smoke - -on: - workflow_dispatch: - inputs: - ref: - description: "Branch or tag to validate" - required: true - default: "fireactions-runners" - dry_run: - description: "Must remain true for this validation workflow" - required: true - default: "true" - workflow_call: - inputs: - ref: - required: false - type: string - default: "fireactions-runners" - dry_run: - required: false - type: string - default: "true" - -concurrency: - group: fireactions-smoke-${{ github.ref }} - cancel-in-progress: true - -jobs: - smoke: - runs-on: - group: fireactions - labels: [self-hosted, fireactions-light] - timeout-minutes: 30 - steps: - - name: Enforce dry-run mode - run: | - if [ "${{ inputs.dry_run }}" != "true" ]; then - echo "dry_run must be true for this workflow." - exit 1 - fi - - - name: Checkout target ref - uses: actions/checkout@v4 - with: - ref: ${{ inputs.ref }} - - - name: Enforce no-install campaign mode - run: | - echo "No system package installs are allowed in this validation campaign." - - - name: Check runner identity - run: | - whoami - id - groups - - - name: Verify required tools - run: | - set -euo pipefail - for cmd in docker gh jq git curl unzip bc; do - command -v "$cmd" - done - docker --version - gh --version - jq --version - git --version - curl --version - unzip -v | head -n 2 - bc --version || bc -v - - - name: Install Rust toolchain - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - - - name: Verify Rust toolchain - run: | - rustc --version - cargo --version - command -v cargo - - - name: Run Docker smoke test - run: | - docker pull hello-world:latest - docker run --rm hello-world:latest diff --git a/.github/workflows/hotfixes.yml b/.github/workflows/hotfixes.yml index 933158e1e2..0e0e74c640 100644 --- a/.github/workflows/hotfixes.yml +++ b/.github/workflows/hotfixes.yml @@ -10,9 +10,7 @@ permissions: jobs: handle-hotfix-pr: - runs-on: - group: fireactions - labels: [self-hosted, fireactions-light] + runs-on: [self-hosted, fireactions-light] steps: - name: Check if PR is a hotfix into `main` if: > diff --git a/.github/workflows/label-triggers.yml b/.github/workflows/label-triggers.yml index be73e85f9c..51147e2565 100644 --- a/.github/workflows/label-triggers.yml +++ b/.github/workflows/label-triggers.yml @@ -13,9 +13,7 @@ permissions: jobs: comment_on_breaking_change: - runs-on: - group: fireactions - labels: [self-hosted, fireactions-light] + runs-on: [self-hosted, fireactions-light] steps: - name: Check if 'breaking change' label is added if: github.event.label.name == 'breaking-change' diff --git a/.github/workflows/require-clean-merges.yml b/.github/workflows/require-clean-merges.yml index e8a1d74dae..9f09bff05f 100644 --- a/.github/workflows/require-clean-merges.yml +++ b/.github/workflows/require-clean-merges.yml @@ -9,9 +9,7 @@ on: jobs: assert-clean-merges: - runs-on: - group: fireactions - labels: [self-hosted, fireactions-light] + runs-on: [self-hosted, fireactions-light] steps: - name: Checkout Repository uses: actions/checkout@v4 diff --git a/.github/workflows/run-benchmarks.yml b/.github/workflows/run-benchmarks.yml index b479c7a54d..12df3f8ab6 100644 --- a/.github/workflows/run-benchmarks.yml +++ b/.github/workflows/run-benchmarks.yml @@ -16,7 +16,6 @@ concurrency: jobs: validate-benchmarks: - if: ${{ github.event_name != 'pull_request' || github.event.pull_request.number != 2483 }} runs-on: Benchmarking env: diff --git a/.github/workflows/rustdocs.yml b/.github/workflows/rustdocs.yml index 5c0768a010..15538cd776 100644 --- a/.github/workflows/rustdocs.yml +++ b/.github/workflows/rustdocs.yml @@ -12,13 +12,10 @@ concurrency: env: CARGO_TERM_COLOR: always - CARGO_BUILD_JOBS: 4 jobs: build: - runs-on: - group: fireactions - labels: [self-hosted, fireactions-heavy] + runs-on: [self-hosted, fireactions-light] steps: - name: Checkout code @@ -57,9 +54,7 @@ jobs: deploy: needs: build - runs-on: - group: fireactions - labels: [self-hosted, fireactions-heavy] + runs-on: [self-hosted, fireactions-light] permissions: pages: write diff --git a/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml b/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml deleted file mode 100644 index b4a643e2c3..0000000000 --- a/.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml +++ /dev/null @@ -1,133 +0,0 @@ -# TEMPORARY: Remove before merging to main/devnet-ready -name: Test Fireactions Apply Benchmark Patch Dry-Run - -on: - workflow_dispatch: - inputs: - ref: - description: "Branch or tag to validate" - required: true - default: "fireactions-runners" - dry_run: - description: "Must remain true for this test workflow" - required: true - default: "true" - pr_number: - description: "PR number to fetch benchmark artifact from (optional)" - required: false - default: "" - workflow_call: - inputs: - ref: - required: false - type: string - default: "fireactions-runners" - dry_run: - required: false - type: string - default: "true" - pr_number: - required: false - type: string - default: "" - -permissions: - contents: read - pull-requests: read - actions: read - -concurrency: - group: test-fireactions-apply-benchmark-patch-dryrun-${{ github.ref }} - cancel-in-progress: true - -jobs: - apply-dryrun: - runs-on: - group: fireactions - labels: [self-hosted, fireactions-light] - timeout-minutes: 30 - steps: - - name: Enforce dry-run mode - run: | - if [ "${{ inputs.dry_run }}" != "true" ]; then - echo "dry_run must be true for this workflow." - exit 1 - fi - - - name: Checkout target ref - uses: actions/checkout@v4 - with: - ref: ${{ inputs.ref }} - - - name: Dependency gate (no installs) - run: | - set -euo pipefail - for cmd in gh git tar; do - command -v "$cmd" - done - - - name: Download latest bench patch artifact from benchmark workflow - if: ${{ inputs.pr_number != '' }} - uses: dawidd6/action-download-artifact@v3 - with: - workflow: run-benchmarks.yml - pr: ${{ inputs.pr_number }} - name: bench-patch - path: . - allow_forks: true - check_artifacts: true - search_artifacts: true - workflow_conclusion: "" - if_no_artifact_found: warn - - - name: Extract bench patch archive - run: | - set -euo pipefail - if [ -f "bench-patch.tgz" ]; then - tar -xzf bench-patch.tgz - elif [ -f "bench-patch/bench-patch.tgz" ]; then - tar -xzf bench-patch/bench-patch.tgz - else - echo "No bench patch archive found." - fi - - - name: Validate patch apply in dry-run mode - run: | - set -euo pipefail - { - echo "# Apply Benchmark Patch Dry-Run Report" - echo - echo "- Ref: \`${{ inputs.ref }}\`" - echo "- PR: \`${{ inputs.pr_number }}\`" - echo - } > apply-benchmark-patch-dryrun-report.md - - if [ ! -f ".bench_patch/benchmark_patch.diff" ]; then - echo "No benchmark_patch.diff found; nothing to validate." >> apply-benchmark-patch-dryrun-report.md - cat apply-benchmark-patch-dryrun-report.md - exit 0 - fi - - if git apply --check ".bench_patch/benchmark_patch.diff"; then - echo "Patch check succeeded." >> apply-benchmark-patch-dryrun-report.md - git apply --index --3way ".bench_patch/benchmark_patch.diff" - echo >> apply-benchmark-patch-dryrun-report.md - echo "## Diff stat" >> apply-benchmark-patch-dryrun-report.md - git diff --cached --stat >> apply-benchmark-patch-dryrun-report.md - else - echo "Patch check failed." >> apply-benchmark-patch-dryrun-report.md - cat apply-benchmark-patch-dryrun-report.md - exit 1 - fi - - cat apply-benchmark-patch-dryrun-report.md - - - name: Upload dry-run artifacts - if: always() - uses: actions/upload-artifact@v4 - with: - name: apply-benchmark-patch-dryrun - path: | - apply-benchmark-patch-dryrun-report.md - .bench_patch/benchmark_patch.diff - if-no-files-found: warn diff --git a/.github/workflows/test-fireactions-docker-dryrun.yml b/.github/workflows/test-fireactions-docker-dryrun.yml deleted file mode 100644 index ba78b9905b..0000000000 --- a/.github/workflows/test-fireactions-docker-dryrun.yml +++ /dev/null @@ -1,73 +0,0 @@ -# TEMPORARY: Remove before merging to main/devnet-ready -name: Test Fireactions Docker Dry-Run - -on: - workflow_dispatch: - inputs: - ref: - description: "Branch or tag to validate" - required: true - default: "fireactions-runners" - dry_run: - description: "Must remain true for this test workflow" - required: true - default: "true" - workflow_call: - inputs: - ref: - required: false - type: string - default: "fireactions-runners" - dry_run: - required: false - type: string - default: "true" - -permissions: - contents: read - packages: read - -concurrency: - group: test-fireactions-docker-dryrun-${{ github.ref }} - cancel-in-progress: true - -jobs: - publish-dryrun: - runs-on: - group: fireactions - labels: [self-hosted, fireactions-heavy] - timeout-minutes: 45 - steps: - - name: Enforce dry-run mode - run: | - if [ "${{ inputs.dry_run }}" != "true" ]; then - echo "dry_run must be true for this workflow." - exit 1 - fi - - - name: Checkout target ref - uses: actions/checkout@v4 - with: - ref: ${{ inputs.ref }} - - - name: Dependency gate (no installs) - run: | - set -euo pipefail - for cmd in docker git; do - command -v "$cmd" - done - docker version - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - with: - driver: docker - - - name: Build Docker image (dry-run, no push) - uses: docker/build-push-action@v6 - with: - context: . - push: false - load: false - platforms: linux/amd64 - tags: ghcr.io/${{ github.repository }}:dryrun-${{ github.run_id }} diff --git a/.github/workflows/test-fireactions-docker-localnet-dryrun.yml b/.github/workflows/test-fireactions-docker-localnet-dryrun.yml deleted file mode 100644 index 0920f7830a..0000000000 --- a/.github/workflows/test-fireactions-docker-localnet-dryrun.yml +++ /dev/null @@ -1,172 +0,0 @@ -# TEMPORARY: Remove before merging to main/devnet-ready -name: Test Fireactions Docker Localnet Dry-Run - -on: - workflow_dispatch: - inputs: - ref: - description: "Branch or tag to validate" - required: true - default: "fireactions-runners" - dry_run: - description: "Must remain true for this test workflow" - required: true - default: "true" - workflow_call: - inputs: - ref: - required: false - type: string - default: "fireactions-runners" - dry_run: - required: false - type: string - default: "true" - -permissions: - contents: read - actions: read - packages: read - -concurrency: - group: test-fireactions-docker-localnet-dryrun-${{ github.ref }} - cancel-in-progress: true - -jobs: - setup: - runs-on: - group: fireactions - labels: [self-hosted, fireactions-light] - outputs: - ref: ${{ steps.vars.outputs.ref }} - tag: ${{ steps.vars.outputs.tag }} - steps: - - name: Enforce dry-run mode - run: | - if [ "${{ inputs.dry_run }}" != "true" ]; then - echo "dry_run must be true for this workflow." - exit 1 - fi - - - name: Determine ref and tag - id: vars - run: | - echo "ref=${{ inputs.ref }}" >> "$GITHUB_OUTPUT" - echo "tag=dryrun-${{ github.run_id }}" >> "$GITHUB_OUTPUT" - - artifacts: - name: Node • ${{ matrix.runtime }} • amd64 - needs: setup - strategy: - fail-fast: false - matrix: - runtime: ["fast-runtime", "non-fast-runtime"] - runs-on: - group: fireactions - labels: [self-hosted, fireactions-heavy] - timeout-minutes: 120 - env: - CARGO_BUILD_JOBS: 6 - steps: - - name: Checkout target ref - uses: actions/checkout@v4 - with: - ref: ${{ needs.setup.outputs.ref }} - - - name: Dependency gate (no installs) - run: | - set -euo pipefail - for cmd in docker clang pkg-config protoc; do - command -v "$cmd" - done - pkg-config --exists openssl - pkg-config --exists libudev - - - name: Install Rust toolchain (run-specific) - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: 1.88.0 - - - name: Verify Rust toolchain commands - run: | - command -v rustup - command -v cargo - - - name: Add Rust target triple - run: rustup target add x86_64-unknown-linux-gnu - - - name: Patch limits for local run - run: | - chmod +x ./scripts/localnet_patch.sh - ./scripts/localnet_patch.sh - - - name: Build binaries - run: | - export PATH="$HOME/.cargo/bin:$PATH" - export CARGO_BUILD_TARGET="x86_64-unknown-linux-gnu" - if [ "${{ matrix.runtime }}" = "fast-runtime" ]; then - ./scripts/localnet.sh --build-only - else - ./scripts/localnet.sh False --build-only - fi - - - name: Prepare artifacts for upload - run: | - RUNTIME="${{ matrix.runtime }}" - TRIPLE="x86_64-unknown-linux-gnu" - mkdir -p build/ci_target/${RUNTIME}/${TRIPLE}/release/ - cp -v target/${RUNTIME}/${TRIPLE}/release/node-subtensor \ - build/ci_target/${RUNTIME}/${TRIPLE}/release/ - mkdir -p build/ci_target/${RUNTIME}/${TRIPLE}/release/wbuild/node-subtensor-runtime/ - cp -v target/${RUNTIME}/${TRIPLE}/release/wbuild/node-subtensor-runtime/node_subtensor_runtime.compact.compressed.wasm \ - build/ci_target/${RUNTIME}/${TRIPLE}/release/wbuild/node-subtensor-runtime/ - - - name: Upload artifact - uses: actions/upload-artifact@v4 - with: - name: dryrun-binaries-x86_64-unknown-linux-gnu-${{ matrix.runtime }} - path: build/ - if-no-files-found: error - - docker: - needs: [setup, artifacts] - runs-on: - group: fireactions - labels: [self-hosted, fireactions-heavy] - timeout-minutes: 90 - steps: - - name: Checkout target ref - uses: actions/checkout@v4 - with: - ref: ${{ needs.setup.outputs.ref }} - - - name: Download all binary artifacts - uses: actions/download-artifact@v5 - with: - pattern: dryrun-binaries-* - path: build/ - merge-multiple: true - - - name: Dependency gate (no installs) - run: | - set -euo pipefail - command -v docker - docker version - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - with: - driver: docker - - - name: Build Docker image (dry-run, no push) - uses: docker/build-push-action@v6 - with: - context: . - file: Dockerfile-localnet - build-args: | - BUILT_IN_CI="Boom shakalaka" - push: false - load: false - platforms: linux/amd64 - tags: ghcr.io/${{ github.repository }}-localnet:${{ needs.setup.outputs.tag }} diff --git a/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml b/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml deleted file mode 100644 index b7d1ddecdd..0000000000 --- a/.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml +++ /dev/null @@ -1,138 +0,0 @@ -# TEMPORARY: Remove before merging to main/devnet-ready -name: Test Fireactions Hotfixes and Labels Dry-Run - -on: - workflow_dispatch: - inputs: - ref: - description: "Branch or tag to validate" - required: true - default: "fireactions-runners" - dry_run: - description: "Must remain true for this test workflow" - required: true - default: "true" - pr_number: - description: "PR number for payload rendering" - required: true - default: "1" - base_ref: - description: "Simulated PR base branch" - required: true - default: "main" - head_ref: - description: "Simulated PR head branch" - required: true - default: "feature/fireactions-test" - label_name: - description: "Simulated label name" - required: true - default: "breaking-change" - workflow_call: - inputs: - ref: - required: false - type: string - default: "fireactions-runners" - dry_run: - required: false - type: string - default: "true" - pr_number: - required: false - type: string - default: "1" - base_ref: - required: false - type: string - default: "main" - head_ref: - required: false - type: string - default: "feature/fireactions-test" - label_name: - required: false - type: string - default: "breaking-change" - -permissions: - contents: read - -concurrency: - group: test-fireactions-hotfixes-labels-dryrun-${{ github.ref }} - cancel-in-progress: true - -jobs: - payload-dryrun: - runs-on: - group: fireactions - labels: [self-hosted, fireactions-light] - timeout-minutes: 20 - steps: - - name: Enforce dry-run mode - run: | - if [ "${{ inputs.dry_run }}" != "true" ]; then - echo "dry_run must be true for this workflow." - exit 1 - fi - - - name: Checkout target ref - uses: actions/checkout@v4 - with: - ref: ${{ inputs.ref }} - - - name: Dependency gate (no installs) - run: | - set -euo pipefail - for cmd in curl jq; do - command -v "$cmd" - done - - - name: Render and validate payloads (no API writes) - run: | - set -euo pipefail - REPORT="hotfixes-labels-dryrun-report.md" - { - echo "# Hotfixes + Labels Dry-Run Report" - echo - echo "- Ref: \`${{ inputs.ref }}\`" - echo "- PR: \`${{ inputs.pr_number }}\`" - echo "- base_ref: \`${{ inputs.base_ref }}\`" - echo "- head_ref: \`${{ inputs.head_ref }}\`" - echo "- label_name: \`${{ inputs.label_name }}\`" - echo - } > "$REPORT" - - if [ "${{ inputs.base_ref }}" = "main" ] && [ "${{ inputs.head_ref }}" != "testnet" ]; then - HOTFIX_LABEL_PAYLOAD='{"labels":["hotfix"]}' - echo "$HOTFIX_LABEL_PAYLOAD" | jq -e '.labels | index("hotfix")' >/dev/null - echo "## Hotfix payload" >> "$REPORT" - echo '```json' >> "$REPORT" - echo "$HOTFIX_LABEL_PAYLOAD" | jq >> "$REPORT" - echo '```' >> "$REPORT" - else - echo "Hotfix condition not met; label/comment payload generation skipped." >> "$REPORT" - fi - - if [ "${{ inputs.label_name }}" = "breaking-change" ]; then - BREAKING_BODY='@opentensor/cerebrum / @opentensor/gyrus / @opentensor/cortex breaking change detected! Please prepare accordingly!' - BREAKING_PAYLOAD="$(jq -n --arg body "$BREAKING_BODY" '{body: $body}')" - echo "$BREAKING_PAYLOAD" | jq -e '.body | length > 0' >/dev/null - echo >> "$REPORT" - echo "## Breaking-change comment payload" >> "$REPORT" - echo '```json' >> "$REPORT" - echo "$BREAKING_PAYLOAD" | jq >> "$REPORT" - echo '```' >> "$REPORT" - else - echo "breaking-change label condition not met; payload generation skipped." >> "$REPORT" - fi - - cat "$REPORT" - - - name: Upload dry-run report - if: always() - uses: actions/upload-artifact@v4 - with: - name: hotfixes-labels-dryrun - path: hotfixes-labels-dryrun-report.md - if-no-files-found: error diff --git a/.github/workflows/test-fireactions-noinstall-probes.yml b/.github/workflows/test-fireactions-noinstall-probes.yml deleted file mode 100644 index 1ddbf4ed42..0000000000 --- a/.github/workflows/test-fireactions-noinstall-probes.yml +++ /dev/null @@ -1,170 +0,0 @@ -# TEMPORARY: Remove before merging to main/devnet-ready -name: Test Fireactions No-Install Probes - -on: - workflow_dispatch: - inputs: - ref: - description: "Branch or tag to validate" - required: true - default: "fireactions-runners" - dry_run: - description: "Must remain true for this test workflow" - required: true - default: "true" - workflow_call: - inputs: - ref: - required: false - type: string - default: "fireactions-runners" - dry_run: - required: false - type: string - default: "true" - -concurrency: - group: test-fireactions-noinstall-probes-${{ github.ref }} - cancel-in-progress: true - -jobs: - probes: - runs-on: - group: fireactions - labels: [self-hosted, fireactions-light] - timeout-minutes: 20 - steps: - - name: Enforce dry-run mode - run: | - if [ "${{ inputs.dry_run }}" != "true" ]; then - echo "dry_run must be true for this workflow." - exit 1 - fi - - - name: Checkout target ref - uses: actions/checkout@v4 - with: - ref: ${{ inputs.ref }} - - - name: Probe runner dependencies (no installs) - run: | - set +e - REQUIRED_MISSING=0 - OPTIONAL_MISSING=0 - REPORT="$GITHUB_WORKSPACE/noinstall-probes-report.md" - { - echo "# Fireactions No-Install Probe Report" - echo - echo "- Ref: \`${{ inputs.ref }}\`" - echo "- Runner: \`self-hosted, fireactions\`" - echo - echo "## Required Command Checks" - } > "$REPORT" - - check_required_cmd() { - if command -v "$1" >/dev/null 2>&1; then - echo "- [x] $1" >> "$REPORT" - else - echo "- [ ] $1 (missing)" >> "$REPORT" - REQUIRED_MISSING=$((REQUIRED_MISSING + 1)) - fi - } - - check_optional_cmd() { - if command -v "$1" >/dev/null 2>&1; then - echo "- [x] $1" >> "$REPORT" - else - echo "- [ ] $1 (missing, image discrepancy)" >> "$REPORT" - OPTIONAL_MISSING=$((OPTIONAL_MISSING + 1)) - fi - } - - check_required_cmd docker - check_required_cmd gh - check_required_cmd jq - check_required_cmd git - check_required_cmd curl - check_required_cmd unzip - check_required_cmd bc - check_required_cmd make - check_required_cmd clang - check_required_cmd pkg-config - check_required_cmd protoc - check_required_cmd llvm-config - check_required_cmd node - check_required_cmd npm - - { - echo - echo "## Optional Command Checks (Image Parity)" - } >> "$REPORT" - - check_optional_cmd gcc-aarch64-linux-gnu - check_optional_cmd gcc-x86-64-linux-gnu - - { - echo - echo "## Functional Checks" - } >> "$REPORT" - - if docker buildx version >/dev/null 2>&1; then - echo "- [x] docker buildx plugin" >> "$REPORT" - else - echo "- [ ] docker buildx plugin (missing)" >> "$REPORT" - REQUIRED_MISSING=$((REQUIRED_MISSING + 1)) - fi - - if docker compose version >/dev/null 2>&1; then - echo "- [x] docker compose plugin" >> "$REPORT" - else - echo "- [ ] docker compose plugin (missing)" >> "$REPORT" - REQUIRED_MISSING=$((REQUIRED_MISSING + 1)) - fi - - if pkg-config --exists openssl; then - echo "- [x] pkg-config openssl" >> "$REPORT" - else - echo "- [ ] pkg-config openssl (missing)" >> "$REPORT" - REQUIRED_MISSING=$((REQUIRED_MISSING + 1)) - fi - - if pkg-config --exists libudev; then - echo "- [x] pkg-config libudev" >> "$REPORT" - else - echo "- [ ] pkg-config libudev (missing)" >> "$REPORT" - REQUIRED_MISSING=$((REQUIRED_MISSING + 1)) - fi - - if [ -f /etc/ssl/certs/ca-certificates.crt ]; then - echo "- [x] ca-certificates bundle" >> "$REPORT" - else - echo "- [ ] ca-certificates bundle (missing)" >> "$REPORT" - REQUIRED_MISSING=$((REQUIRED_MISSING + 1)) - fi - - { - echo - echo "## Result" - echo - echo "- Missing required checks: $REQUIRED_MISSING" - echo "- Missing optional checks: $OPTIONAL_MISSING" - } >> "$REPORT" - - cat "$REPORT" - - if [ "$OPTIONAL_MISSING" -gt 0 ]; then - echo "::warning::Optional image parity checks missing: $OPTIONAL_MISSING" - fi - - if [ "$REQUIRED_MISSING" -gt 0 ]; then - echo "Dependency probe failed with $REQUIRED_MISSING missing required checks." - exit 1 - fi - - - name: Upload probe report - if: always() - uses: actions/upload-artifact@v4 - with: - name: fireactions-noinstall-probes-report - path: noinstall-probes-report.md - if-no-files-found: error diff --git a/.github/workflows/test-fireactions-rustdocs-dryrun.yml b/.github/workflows/test-fireactions-rustdocs-dryrun.yml deleted file mode 100644 index f6a26d0f51..0000000000 --- a/.github/workflows/test-fireactions-rustdocs-dryrun.yml +++ /dev/null @@ -1,83 +0,0 @@ -# TEMPORARY: Remove before merging to main/devnet-ready -name: Test Fireactions Rustdocs Dry-Run - -on: - workflow_dispatch: - inputs: - ref: - description: "Branch or tag to validate" - required: true - default: "fireactions-runners" - dry_run: - description: "Must remain true for this test workflow" - required: true - default: "true" - workflow_call: - inputs: - ref: - required: false - type: string - default: "fireactions-runners" - dry_run: - required: false - type: string - default: "true" - -permissions: - contents: read - -concurrency: - group: test-fireactions-rustdocs-dryrun-${{ github.ref }} - cancel-in-progress: true - -jobs: - build-docs-dryrun: - runs-on: - group: fireactions - labels: [self-hosted, fireactions-light] - timeout-minutes: 90 - env: - CARGO_BUILD_JOBS: 4 - steps: - - name: Enforce dry-run mode - run: | - if [ "${{ inputs.dry_run }}" != "true" ]; then - echo "dry_run must be true for this workflow." - exit 1 - fi - - - name: Checkout target ref - uses: actions/checkout@v4 - with: - ref: ${{ inputs.ref }} - - - name: Dependency gate (no installs) - run: | - set -euo pipefail - for cmd in clang curl pkg-config llvm-config protoc; do - command -v "$cmd" - done - pkg-config --exists openssl - pkg-config --exists libudev - - - name: Install Rust toolchain (run-specific) - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - - - name: Generate documentation - uses: actions-rs/cargo@v1 - with: - command: doc - args: --document-private-items - - - name: Generate index.html - run: | - echo "" > target/doc/index.html - - - name: Upload documentation artifact - uses: actions/upload-artifact@v4 - with: - name: rustdocs-dryrun - path: target/doc - if-no-files-found: error diff --git a/.github/workflows/test-fireactions-update-chainspec-dryrun.yml b/.github/workflows/test-fireactions-update-chainspec-dryrun.yml deleted file mode 100644 index d611b66f61..0000000000 --- a/.github/workflows/test-fireactions-update-chainspec-dryrun.yml +++ /dev/null @@ -1,105 +0,0 @@ -# TEMPORARY: Remove before merging to main/devnet-ready -name: Test Fireactions Update Chainspec Dry-Run - -on: - workflow_dispatch: - inputs: - ref: - description: "Branch or tag to validate" - required: true - default: "fireactions-runners" - dry_run: - description: "Must remain true for this test workflow" - required: true - default: "true" - workflow_call: - inputs: - ref: - required: false - type: string - default: "fireactions-runners" - dry_run: - required: false - type: string - default: "true" - -permissions: - contents: read - -concurrency: - group: test-fireactions-update-chainspec-dryrun-${{ github.ref }} - cancel-in-progress: true - -jobs: - update-chainspecs-dryrun: - runs-on: - group: fireactions - labels: [self-hosted, fireactions-heavy] - timeout-minutes: 120 - env: - CARGO_TERM_COLOR: always - RUST_BACKTRACE: full - CARGO_BUILD_JOBS: 6 - steps: - - name: Enforce dry-run mode - run: | - if [ "${{ inputs.dry_run }}" != "true" ]; then - echo "dry_run must be true for this workflow." - exit 1 - fi - - - name: Checkout target ref - uses: actions/checkout@v4 - with: - ref: ${{ inputs.ref }} - - - name: Dependency gate (no installs) - run: | - set -euo pipefail - for cmd in clang curl pkg-config llvm-config protoc git; do - command -v "$cmd" - done - pkg-config --exists openssl - pkg-config --exists libudev - - - name: Install Rust toolchain (run-specific) - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - - - name: Utilize Rust cache - uses: Swatinem/rust-cache@v2 - - - name: Build chainspecs - run: ./scripts/build_all_chainspecs.sh - - - name: Generate dry-run diff report - run: | - { - echo "# Update Chainspec Dry-Run Report" - echo - echo "- Ref: \`${{ inputs.ref }}\`" - echo - if git diff --quiet; then - echo "No changes detected." - else - echo "Changes detected." - echo - echo "## Changed files" - git diff --name-only | sed 's/^/- /' - echo - echo "## Diff stat" - git diff --stat - fi - } > chainspecs-dryrun-report.md - - git diff > chainspecs-dryrun.patch || true - - - name: Upload dry-run artifacts - uses: actions/upload-artifact@v4 - with: - name: chainspecs-dryrun - path: | - chainspecs-dryrun-report.md - chainspecs-dryrun.patch - if-no-files-found: warn diff --git a/.github/workflows/test-fireactions-validation-suite.yml b/.github/workflows/test-fireactions-validation-suite.yml deleted file mode 100644 index cec8d1cfaf..0000000000 --- a/.github/workflows/test-fireactions-validation-suite.yml +++ /dev/null @@ -1,112 +0,0 @@ -# TEMPORARY: Remove before merging to main/devnet-ready -name: Test Fireactions Validation Suite - -on: - pull_request: - types: [opened, synchronize, reopened] - workflow_dispatch: - inputs: - ref: - description: "Branch or tag to validate" - required: true - default: "fireactions-runners" - dry_run: - description: "Must remain true for this validation workflow" - required: true - default: "true" - pr_number: - description: "Optional PR number for benchmark patch artifact fetch" - required: false - default: "" - base_ref: - description: "Simulated PR base branch for hotfix/label payload tests" - required: false - default: "main" - head_ref: - description: "Simulated PR head branch for hotfix/label payload tests" - required: false - default: "feature/fireactions-test" - label_name: - description: "Simulated label name for label payload tests" - required: false - default: "breaking-change" - -permissions: - contents: read - actions: read - pull-requests: read - packages: read - -concurrency: - group: test-fireactions-validation-suite-${{ github.ref }} - cancel-in-progress: true - -jobs: - smoke: - if: ${{ github.event_name != 'pull_request' || github.head_ref == 'fireactions-runners' }} - uses: ./.github/workflows/fireactions-smoke.yml - with: - ref: ${{ github.event_name == 'pull_request' && github.head_ref || inputs.ref }} - dry_run: ${{ github.event_name == 'pull_request' && 'true' || inputs.dry_run }} - secrets: inherit - - noinstall-probes: - if: ${{ github.event_name != 'pull_request' || github.head_ref == 'fireactions-runners' }} - uses: ./.github/workflows/test-fireactions-noinstall-probes.yml - with: - ref: ${{ github.event_name == 'pull_request' && github.head_ref || inputs.ref }} - dry_run: ${{ github.event_name == 'pull_request' && 'true' || inputs.dry_run }} - secrets: inherit - - docker-dryrun: - if: ${{ github.event_name != 'pull_request' || github.head_ref == 'fireactions-runners' }} - uses: ./.github/workflows/test-fireactions-docker-dryrun.yml - with: - ref: ${{ github.event_name == 'pull_request' && github.head_ref || inputs.ref }} - dry_run: ${{ github.event_name == 'pull_request' && 'true' || inputs.dry_run }} - secrets: inherit - - docker-localnet-dryrun: - if: ${{ github.event_name != 'pull_request' || github.head_ref == 'fireactions-runners' }} - uses: ./.github/workflows/test-fireactions-docker-localnet-dryrun.yml - with: - ref: ${{ github.event_name == 'pull_request' && github.head_ref || inputs.ref }} - dry_run: ${{ github.event_name == 'pull_request' && 'true' || inputs.dry_run }} - secrets: inherit - - rustdocs-dryrun: - if: ${{ github.event_name != 'pull_request' || github.head_ref == 'fireactions-runners' }} - uses: ./.github/workflows/test-fireactions-rustdocs-dryrun.yml - with: - ref: ${{ github.event_name == 'pull_request' && github.head_ref || inputs.ref }} - dry_run: ${{ github.event_name == 'pull_request' && 'true' || inputs.dry_run }} - secrets: inherit - - update-chainspec-dryrun: - if: ${{ github.event_name != 'pull_request' || github.head_ref == 'fireactions-runners' }} - uses: ./.github/workflows/test-fireactions-update-chainspec-dryrun.yml - with: - ref: ${{ github.event_name == 'pull_request' && github.head_ref || inputs.ref }} - dry_run: ${{ github.event_name == 'pull_request' && 'true' || inputs.dry_run }} - secrets: inherit - - apply-benchmark-patch-dryrun: - if: ${{ github.event_name != 'pull_request' || github.head_ref == 'fireactions-runners' }} - uses: ./.github/workflows/test-fireactions-apply-benchmark-patch-dryrun.yml - with: - ref: ${{ github.event_name == 'pull_request' && github.head_ref || inputs.ref }} - dry_run: ${{ github.event_name == 'pull_request' && 'true' || inputs.dry_run }} - pr_number: ${{ github.event_name == 'pull_request' && github.event.pull_request.number || inputs.pr_number }} - secrets: inherit - - hotfixes-labels-dryrun: - if: ${{ github.event_name != 'pull_request' || github.head_ref == 'fireactions-runners' }} - uses: ./.github/workflows/test-fireactions-hotfixes-labels-dryrun.yml - with: - ref: ${{ github.event_name == 'pull_request' && github.head_ref || inputs.ref }} - dry_run: ${{ github.event_name == 'pull_request' && 'true' || inputs.dry_run }} - pr_number: ${{ github.event_name == 'pull_request' && github.event.pull_request.number || (inputs.pr_number != '' && inputs.pr_number || '1') }} - base_ref: ${{ github.event_name == 'pull_request' && github.base_ref || inputs.base_ref }} - head_ref: ${{ github.event_name == 'pull_request' && github.head_ref || inputs.head_ref }} - label_name: ${{ github.event_name == 'pull_request' && 'breaking-change' || inputs.label_name }} - secrets: inherit diff --git a/.github/workflows/try-runtime.yml b/.github/workflows/try-runtime.yml index 0287397832..2cecce2a58 100644 --- a/.github/workflows/try-runtime.yml +++ b/.github/workflows/try-runtime.yml @@ -14,11 +14,7 @@ jobs: check-devnet: name: check devnet if: github.base_ref != 'main' - runs-on: - group: fireactions - labels: [self-hosted, fireactions-tryruntime] - env: - CARGO_BUILD_JOBS: 6 + runs-on: [self-hosted, fireactions-tryruntime] steps: - name: Checkout sources uses: actions/checkout@v4 @@ -49,11 +45,7 @@ jobs: check-testnet: name: check testnet if: github.base_ref != 'main' - runs-on: - group: fireactions - labels: [self-hosted, fireactions-tryruntime] - env: - CARGO_BUILD_JOBS: 6 + runs-on: [self-hosted, fireactions-tryruntime] steps: - name: Checkout sources uses: actions/checkout@v4 @@ -84,11 +76,7 @@ jobs: check-finney: name: check finney # if: github.base_ref == 'testnet' || github.base_ref == 'devnet' || github.base_ref == 'main' - runs-on: - group: fireactions - labels: [self-hosted, fireactions-tryruntime-finney] - env: - CARGO_BUILD_JOBS: 6 + runs-on: [self-hosted, fireactions-tryruntime-finney] steps: - name: Checkout sources uses: actions/checkout@v4 diff --git a/.github/workflows/update-chainspec.yml b/.github/workflows/update-chainspec.yml index d230ba1ee1..2ec99c6925 100644 --- a/.github/workflows/update-chainspec.yml +++ b/.github/workflows/update-chainspec.yml @@ -14,14 +14,11 @@ on: env: CARGO_TERM_COLOR: always - VERBOSE: ${{ github.event.inputs.verbose }} - CARGO_BUILD_JOBS: 4 + VERBOSE: ${{ github.events.input.verbose }} jobs: update-chainspecs: - runs-on: - group: fireactions - labels: [self-hosted, fireactions-heavy] + runs-on: [self-hosted, fireactions-heavy] permissions: contents: write if: >