mirror of
https://github.com/bybrooklyn/openbitdo.git
synced 2026-03-19 12:12:57 -04:00
ci: drop self-hosted hardware runner requirements
This commit is contained in:
131
.github/workflows/ci.yml
vendored
131
.github/workflows/ci.yml
vendored
@@ -143,27 +143,6 @@ jobs:
|
|||||||
name: ci-linux-aarch64-package
|
name: ci-linux-aarch64-package
|
||||||
path: sdk/dist/openbitdo-v0.0.0-ci-linux-aarch64*
|
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:
|
test:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs:
|
needs:
|
||||||
@@ -188,113 +167,3 @@ jobs:
|
|||||||
run: cargo clippy --workspace --all-targets -- -D warnings
|
run: cargo clippy --workspace --all-targets -- -D warnings
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
run: cargo test --workspace --all-targets
|
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
|
|
||||||
|
|||||||
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
@@ -67,7 +67,7 @@ jobs:
|
|||||||
[[ -n "${HOMEBREW_TAP_REPO:-}" ]] || { echo "missing required variable: HOMEBREW_TAP_REPO" >&2; exit 1; }
|
[[ -n "${HOMEBREW_TAP_REPO:-}" ]] || { echo "missing required variable: HOMEBREW_TAP_REPO" >&2; exit 1; }
|
||||||
gh repo view "${HOMEBREW_TAP_REPO}" >/dev/null
|
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 }}
|
working-directory: ${{ github.workspace }}
|
||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@@ -79,8 +79,6 @@ jobs:
|
|||||||
tui-smoke-test
|
tui-smoke-test
|
||||||
build-macos-arm64
|
build-macos-arm64
|
||||||
test
|
test
|
||||||
hardware-ultimate2
|
|
||||||
hardware-108jp
|
|
||||||
)
|
)
|
||||||
check_runs_json="$(gh api "repos/${GITHUB_REPOSITORY}/commits/${GITHUB_SHA}/check-runs")"
|
check_runs_json="$(gh api "repos/${GITHUB_REPOSITORY}/commits/${GITHUB_SHA}/check-runs")"
|
||||||
failed=0
|
failed=0
|
||||||
|
|||||||
@@ -62,16 +62,6 @@ Expected:
|
|||||||
- `tui-smoke-test`
|
- `tui-smoke-test`
|
||||||
- `build-macos-arm64`
|
- `build-macos-arm64`
|
||||||
- `test`
|
- `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)
|
## Release Secret Preflight (Tag Workflow)
|
||||||
Tag preflight must fail early if any required secret is missing:
|
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`). |
|
| 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. |
|
| 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`). |
|
| 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
|
## RC Execution Log
|
||||||
- 2026-03-02T20:54:31Z: governance preflight complete; release blocker remains open by policy.
|
- 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: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: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: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:
|
- 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.tar.gz`
|
||||||
- `openbitdo-v0.0.0-ci-linux-x86_64`
|
- `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: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: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: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.
|
||||||
|
|||||||
@@ -124,9 +124,10 @@ Packaging outputs use:
|
|||||||
- unsigned/ad-hoc is accepted for RC
|
- unsigned/ad-hoc is accepted for RC
|
||||||
- notarization required for `v0.1.0`
|
- notarization required for `v0.1.0`
|
||||||
|
|
||||||
## Hardware CI gates
|
## CI Gates
|
||||||
- required:
|
- required:
|
||||||
- `hardware-ultimate2`
|
- `guard`
|
||||||
- `hardware-108jp`
|
- `test`
|
||||||
- gated:
|
- `tui-smoke-test`
|
||||||
- `hardware-jphandshake` (enabled only when `BITDO_ENABLE_JP_HARDWARE=1`)
|
- `aur-validate`
|
||||||
|
- `build-macos-arm64`
|
||||||
|
|||||||
Reference in New Issue
Block a user