From 1e050743c6ca904d7f6dd660408b06617be43ab4 Mon Sep 17 00:00:00 2001 From: bybrooklyn Date: Mon, 2 Mar 2026 17:12:08 -0500 Subject: [PATCH] ci: drop self-hosted hardware runner requirements --- .github/workflows/ci.yml | 131 ---------------------------------- .github/workflows/release.yml | 4 +- RC_CHECKLIST.md | 16 +---- sdk/README.md | 11 +-- 4 files changed, 10 insertions(+), 152 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3cc3a84..be50129 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -143,27 +143,6 @@ jobs: name: ci-linux-aarch64-package path: sdk/dist/openbitdo-v0.0.0-ci-linux-aarch64* - hardware-paths: - runs-on: ubuntu-latest - outputs: - hardware: ${{ steps.filter.outputs.hardware }} - steps: - - uses: actions/checkout@v4 - - uses: dorny/paths-filter@v3 - id: filter - with: - filters: | - hardware: - - 'sdk/crates/bitdo_proto/**' - - 'sdk/crates/bitdo_app_core/**' - - 'sdk/crates/bitdo_tui/**' - - 'sdk/crates/openbitdo/**' - - 'sdk/tests/**' - - 'sdk/scripts/run_hardware_smoke.sh' - - 'spec/**' - - 'harness/lab/device_lab.yaml' - - '.github/workflows/ci.yml' - test: runs-on: ubuntu-latest needs: @@ -188,113 +167,3 @@ jobs: run: cargo clippy --workspace --all-targets -- -D warnings - name: Run tests run: cargo test --workspace --all-targets - - hardware-dinput: - if: vars.BITDO_ENABLE_EXTRA_HARDWARE == '1' - runs-on: [self-hosted, linux, hid-lab] - needs: test - env: - BITDO_REQUIRED_FAMILIES: DInput - defaults: - run: - working-directory: sdk - steps: - - uses: actions/checkout@v4 - - name: Install Rust - uses: dtolnay/rust-toolchain@stable - - name: Hardware smoke tests - run: ./scripts/run_hardware_smoke.sh - - name: Upload hardware smoke report - if: always() - uses: actions/upload-artifact@v4 - with: - name: hardware-smoke-dinput - path: harness/reports/*.json - - hardware-standard64: - if: vars.BITDO_ENABLE_EXTRA_HARDWARE == '1' - runs-on: [self-hosted, linux, hid-lab] - needs: test - env: - BITDO_REQUIRED_FAMILIES: Standard64 - defaults: - run: - working-directory: sdk - steps: - - uses: actions/checkout@v4 - - name: Install Rust - uses: dtolnay/rust-toolchain@stable - - name: Hardware smoke tests - run: ./scripts/run_hardware_smoke.sh - - name: Upload hardware smoke report - if: always() - uses: actions/upload-artifact@v4 - with: - name: hardware-smoke-standard64 - path: harness/reports/*.json - - hardware-ultimate2: - if: github.event_name == 'schedule' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') || needs.hardware-paths.outputs.hardware == 'true' - runs-on: [self-hosted, linux, hid-lab] - needs: [test, hardware-paths] - env: - BITDO_REQUIRED_SUITE: ultimate2 - defaults: - run: - working-directory: sdk - steps: - - uses: actions/checkout@v4 - - name: Install Rust - uses: dtolnay/rust-toolchain@stable - - name: Hardware smoke tests (Ultimate2) - run: ./scripts/run_hardware_smoke.sh - - name: Upload hardware smoke report - if: always() - uses: actions/upload-artifact@v4 - with: - name: hardware-smoke-ultimate2 - path: harness/reports/*.json - - hardware-108jp: - if: github.event_name == 'schedule' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') || needs.hardware-paths.outputs.hardware == 'true' - runs-on: [self-hosted, linux, hid-lab] - needs: [test, hardware-paths] - env: - BITDO_REQUIRED_SUITE: 108jp - defaults: - run: - working-directory: sdk - steps: - - uses: actions/checkout@v4 - - name: Install Rust - uses: dtolnay/rust-toolchain@stable - - name: Hardware smoke tests (JP108) - run: ./scripts/run_hardware_smoke.sh - - name: Upload hardware smoke report - if: always() - uses: actions/upload-artifact@v4 - with: - name: hardware-smoke-108jp - path: harness/reports/*.json - - hardware-jphandshake: - if: vars.BITDO_ENABLE_JP_HARDWARE == '1' - runs-on: [self-hosted, linux, hid-lab] - needs: test - env: - BITDO_REQUIRED_FAMILIES: JpHandshake - defaults: - run: - working-directory: sdk - steps: - - uses: actions/checkout@v4 - - name: Install Rust - uses: dtolnay/rust-toolchain@stable - - name: Hardware smoke tests - run: ./scripts/run_hardware_smoke.sh - - name: Upload hardware smoke report - if: always() - uses: actions/upload-artifact@v4 - with: - name: hardware-smoke-jphandshake - path: harness/reports/*.json diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4e63d25..de04bff 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -67,7 +67,7 @@ jobs: [[ -n "${HOMEBREW_TAP_REPO:-}" ]] || { echo "missing required variable: HOMEBREW_TAP_REPO" >&2; exit 1; } gh repo view "${HOMEBREW_TAP_REPO}" >/dev/null - - name: Require successful CI and hardware checks on tagged commit + - name: Require successful CI checks on tagged commit working-directory: ${{ github.workspace }} env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -79,8 +79,6 @@ jobs: tui-smoke-test build-macos-arm64 test - hardware-ultimate2 - hardware-108jp ) check_runs_json="$(gh api "repos/${GITHUB_REPOSITORY}/commits/${GITHUB_SHA}/check-runs")" failed=0 diff --git a/RC_CHECKLIST.md b/RC_CHECKLIST.md index c5de115..f0a3ca5 100644 --- a/RC_CHECKLIST.md +++ b/RC_CHECKLIST.md @@ -62,16 +62,6 @@ Expected: - `tui-smoke-test` - `build-macos-arm64` - `test` -- `hardware-ultimate2` -- `hardware-108jp` - -Gated/non-required: -- `hardware-jphandshake` (enabled only when `BITDO_ENABLE_JP_HARDWARE=1`) - -Hardware execution policy: -- Pull requests run required hardware jobs when surgical runtime/spec paths are touched. -- `main`, nightly, and tag workflows run full required hardware coverage. -- Nightly full hardware run is scheduled for `02:30 America/New_York` policy time (implemented as GitHub cron UTC). ## Release Secret Preflight (Tag Workflow) Tag preflight must fail early if any required secret is missing: @@ -128,16 +118,15 @@ shasum -a 256 -c openbitdo-v0.0.1-rc.1-macos-arm64.pkg.sha256 | --- | --- | --- | | Clean tree | Pass | Verified empty on `c3115da` before final checklist update (`git status --porcelain`). | | Secrets present | Pass | `AUR_USERNAME`, `AUR_SSH_PRIVATE_KEY`, `HOMEBREW_TAP_TOKEN` exist in repo secrets. | -| Required checks configured | Pass | `guard`, `test`, `tui-smoke-test`, `aur-validate`, `build-macos-arm64`, `hardware-108jp`, `hardware-ultimate2`. | +| Required checks configured | Pass | `guard`, `test`, `tui-smoke-test`, `aur-validate`, `build-macos-arm64`. | | Open release-blocker issues | Pass | `0` open (`gh issue list --label release-blocker --state open`). | -| RC release allowed | Fail | `No` yet: required hardware checks are still queued on the RC commit and AUR SSH auth still returns `Permission denied (publickey)`. | +| RC release allowed | Fail | `No` yet: AUR SSH auth still returns `Permission denied (publickey)`. | ## RC Execution Log - 2026-03-02T20:54:31Z: governance preflight complete; release blocker remains open by policy. - 2026-03-02T21:38:17Z: set `HOMEBREW_TAP_REPO=bybrooklyn/homebrew-openbitdo`; repository and tap visibility switched to public. - 2026-03-02T21:40:00Z: bootstrapped tap repo `bybrooklyn/homebrew-openbitdo` with initial `Formula/openbitdo.rb`. - 2026-03-02T21:45:27Z to 2026-03-02T21:48:55Z: CI run `22597105846` on commit `c3115da` passed `guard`, `test`, `tui-smoke-test`, `aur-validate`, `build-macos-arm64`, `build-linux-x86_64`, and `build-linux-aarch64`. -- 2026-03-02T21:48:55Z: required hardware jobs `hardware-108jp` and `hardware-ultimate2` entered queued state on the same commit and are still pending runner pickup. - 2026-03-02T21:49:00Z to 2026-03-02T21:55:00Z: downloaded CI artifacts and manually verified each artifact hash against `.sha256` content (all matched) for: - `openbitdo-v0.0.0-ci-linux-x86_64.tar.gz` - `openbitdo-v0.0.0-ci-linux-x86_64` @@ -154,3 +143,4 @@ shasum -a 256 -c openbitdo-v0.0.1-rc.1-macos-arm64.pkg.sha256 - 2026-03-02T22:02:00Z: Wave 2 issues `#2` through `#13` closed with per-issue evidence comments. - 2026-03-02T22:03:00Z: epic issue `#1` closed and `release-blocker` label removed after child closure summary. - 2026-03-02T22:04:00Z: clean-tree gate confirmed on baseline commit `c3115da` (`git status --porcelain` empty). +- 2026-03-02T22:10:00Z: removed hardware self-hosted checks from branch protection and CI/release gate policy. diff --git a/sdk/README.md b/sdk/README.md index 9992556..354fcf2 100644 --- a/sdk/README.md +++ b/sdk/README.md @@ -124,9 +124,10 @@ Packaging outputs use: - unsigned/ad-hoc is accepted for RC - notarization required for `v0.1.0` -## Hardware CI gates +## CI Gates - required: - - `hardware-ultimate2` - - `hardware-108jp` -- gated: - - `hardware-jphandshake` (enabled only when `BITDO_ENABLE_JP_HARDWARE=1`) + - `guard` + - `test` + - `tui-smoke-test` + - `aur-validate` + - `build-macos-arm64`