test: verify GitHub-hosted runner fallback on a fork - #1
Conversation
Blacksmith runner labels only resolve for the pingdotgg org, so every job in CI, the mobile fingerprint check, and the Windows test lane queues forever on a fork. Pick the runner with case() on the repository owner so forks get the equivalent GitHub-hosted runner from the same workflow file.
There was a problem hiding this comment.
The PR replaces hardcoded Blacksmith runner labels with case() expressions to fall back to GitHub-hosted runners on forks. Two critical bugs: (1) case() is not a valid GitHub Actions expression function — the workflow will fail to parse/evaluate on forks; the correct pattern is github.repository_owner == 'pingdotgg' && '<blacksmith>' || '<github-hosted>'. (2) macos-26 is not a valid GitHub-hosted macOS runner label (should be macos-14). Also verify ubuntu-24.04 and windows-2025 are available as GitHub-hosted labels before relying on them.
review-bot, model inclusionai/ling-3.0-flash-sante:free, verdict request_changes
| group: ci-${{ github.event.pull_request.number || github.sha }} | ||
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | ||
|
|
||
| # Blacksmith runners only exist under the pingdotgg org. Every job picks its |
There was a problem hiding this comment.
case() is not a GitHub Actions expression function. Use github.repository_owner == 'pingdotgg' && 'blacksmith-8vcpu-ubuntu-2404' || 'ubuntu-24.04' instead, or the workflow will fail on forks.
| # output empty, and that must run the lint rather than silently skip it. | ||
| if: ${{ !cancelled() && needs.mobile_native_changes.outputs.changed != 'false' }} | ||
| runs-on: blacksmith-6vcpu-macos-26 | ||
| runs-on: ${{ case(github.repository_owner == 'pingdotgg', 'blacksmith-6vcpu-macos-26', 'macos-26') }} |
There was a problem hiding this comment.
case() is invalid here too — same fix as above. Also macos-26 is not a valid GitHub-hosted runner label; use macos-14 (or the current GA macOS version).
| release_smoke: | ||
| name: Release Smoke | ||
| runs-on: blacksmith-8vcpu-ubuntu-2404 | ||
| runs-on: ${{ case(github.repository_owner == 'pingdotgg', 'blacksmith-8vcpu-ubuntu-2404', 'ubuntu-24.04') }} |
There was a problem hiding this comment.
case() is not a valid GitHub Actions expression function — same fix as line 16.
| fingerprint: | ||
| name: Native fingerprint diff | ||
| runs-on: blacksmith-8vcpu-ubuntu-2404 | ||
| runs-on: ${{ case(github.repository_owner == 'pingdotgg', 'blacksmith-8vcpu-ubuntu-2404', 'ubuntu-24.04') }} |
There was a problem hiding this comment.
case() is not a valid GitHub Actions expression function — same fix as line 16.
| test: | ||
| name: Test (${{ inputs.package || 'all non-server' }}) | ||
| runs-on: blacksmith-8vcpu-windows-2025 | ||
| runs-on: ${{ case(github.repository_owner == 'pingdotgg', 'blacksmith-8vcpu-windows-2025', 'windows-2025') }} |
There was a problem hiding this comment.
case() is not a valid GitHub Actions expression function — same fix as line 16. Also confirm windows-2025 is a generally-available GitHub-hosted label before relying on it.
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: unavailable · PR result: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
|
Verification complete, results captured in pingdotgg#11438. |
Throwaway PR to prove the runner fallback actually schedules and passes on a fork. Not for merge.