ci: use ubuntu-latest for openspiel base build (8-core-ubuntu runner unknown)#881
Conversation
|
The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update. |
There was a problem hiding this comment.
Alignment Review Report
Two-tier review of the only change in this PR: switching the build-openspiel-base job runner from 8-core-ubuntu to ubuntu-latest in .github/workflows/openspiel_base_build.yml (1 file, +1/-1).
Automated Checks
- Lint: PASS (N/A) —
.claude/hooks/lint.shonly checks Python (src/,tests/,envs/); this PR changes no.pyfiles, so the Python linters don't apply. (The hook also can't run in the review sandbox becauseuvisn't installed there, but CI runs it normally.) - Debug code: CLEAN —
.claude/hooks/check-debug.shsurfacedprint/TODOmatches, but all are in pre-existing, untouched files (src/openenv/core/containers/...,cli/commands/serve.py). This PR introduces none.
Open RFCs Context
In Review: 000-project-phases, 001-abstractions, 002-env-spec, 003-mcp-support, 005-agentic-harnesses. Draft: 010-echo-env-token-world-model. None of these (nor 004-rubrics) touch CI / runner configuration, so none are relevant to this change.
Tier 1: Fixes Required
None. The change is valid YAML, ubuntu-latest is a valid GitHub-hosted runner, and it matches the convention used by every other job in the repo. No 8-core-ubuntu references remain anywhere in the tree.
Tier 2: Alignment Discussion
Principle Conflicts
None identified. This is a CI-infrastructure change; it doesn't touch the Gymnasium API (reset/step/state), client–server separation, reward placement, agent isolation, or the Pydantic wire types.
RFC Conflicts
None identified.
Summary
- 0 mechanical issues to fix
- 0 alignment points for human review
- 0 RFC conflicts
Consistency win: 8-core-ubuntu was the only non-standard runner label in the repo; after this PR all workflows use ubuntu-latest. Per the PR title that label appears unavailable, so the job likely couldn't start before — this restores it.
Minor (non-blocking) note: this job builds multi-arch images (linux/amd64,linux/arm64), and the arm64 leg runs under QEMU emulation, which is CPU-heavy — a standard runner will be slower than the 8-core one. Acceptable because (a) the sibling build-base job already uses ubuntu-latest with the same multi-arch build, and (b) it's a manual workflow_dispatch-only workflow, off the PR/merge critical path. Worth a glance at build duration after the next manual run.
Sent by Cursor Automation: Untitled
| # Job 2: Build OpenSpiel base image (depends on base) | ||
| build-openspiel-base: | ||
| runs-on: 8-core-ubuntu | ||
| runs-on: ubuntu-latest |
There was a problem hiding this comment.
This now matches the sibling build-base job (line 19) and every other workflow in the repo — all use ubuntu-latest. 8-core-ubuntu was the only outlier, with no remaining references after this change. Looks correct.
Minor heads-up: this job builds linux/amd64,linux/arm64 (arm64 via QEMU emulation), which is CPU-intensive, so expect a slower build than on the 8-core runner. Fine for a manual workflow_dispatch job — just worth confirming the next run's duration stays well under the job time limit.


Summary
The
build-openspiel-basejob inopenspiel_base_build.ymlrequestedruns-on: 8-core-ubuntu, a runner label that is not provisioned for this repo. Infra confirmed the runner is unknown, so the job sat inqueuedforever and never picked up a runner. This switches it toubuntu-latest, the standard GitHub-hosted runner already used by the siblingbuild-basejob.Type of Change
Alignment Checklist
Before submitting, verify:
.claude/docs/PRINCIPLES.mdand this PR aligns with our principles.claude/docs/INVARIANTS.mdand no invariants are violated/pre-submit-pr(orbash .claude/hooks/lint.shand tests) and addressed all issuesRFC Status
Test Plan
The workflow is
workflow_dispatchonly, so it does not run as a PR check. To verify without merging, dispatch it against this branch:The build-openspiel-base job should now pick up an ubuntu-latest runner (instead of hanging in queued) and complete the OpenSpiel base image build. Watch build time and memory while compiling OpenSpiel on the 4-core standard runner. If it runs out of resources, the follow-up is to request a valid larger/internal runner label from infra.
Claude Code Review
N/A
Note
Low Risk
CI-only workflow changes with no application runtime impact; OpenSpiel compile may be slower or OOM on standard runners.
Overview
Fixes
build-openspiel-baseinopenspiel_base_build.ymlso it can actually run:runs-onchanges from the unprovisioned8-core-ubuntulabel toubuntu-latest, matchingbuild-base.The OpenSpiel base Docker build now passes
BASE_IMAGEpointing at theopenenv-base:latestimage just pushed in the first job, soDockerfile.openspiel-baselayers on the correct GHCR base instead of the local default.Reviewed by Cursor Bugbot for commit 7a9bb94. Bugbot is set up for automated code reviews on this repo. Configure here.