ci: drop self-hosted hardware runner requirements

This commit is contained in:
2026-03-02 17:12:08 -05:00
parent 434565bfba
commit 1e050743c6
4 changed files with 10 additions and 152 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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.

View File

@@ -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`