ci: migrate all workflows to Namespace runners - #447
Draft
claude[bot] wants to merge 1 commit into
Draft
claude[bot] wants to merge 1 commit into
claude[bot] wants to merge 1 commit into
Conversation
Move every job in the 10 workflow files (_build, _publish, automerge,
check, format, generate, prune, publish, semantic-release, version)
from GitHub-hosted `ubuntu-latest` onto profile-labeled Namespace
runners.
Mapping:
- small dispatch/commit/prune/tag/automerge jobs -> namespace-profile-mini
- lint / typecheck / install / codegen jobs -> namespace-profile-codegen
- npm test matrix -> namespace-profile-npm-test
- publish / release / semantic-release -> namespace-profile-standard
The `check.yml` matrix `os` (previously single-value `ubuntu-latest`)
becomes the Namespace label for that job while keeping
`runs-on: ${{ matrix.os }}`.
Labels are hard-coded (no `vars.RUNNER_OVERRIDE` fallback) per request.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015ZbCLvCAyCca1zguyCbHT5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Phil Chmalts · Slack thread
Summary
Move every job in the 10 workflow files onto profile-labeled Namespace runners, replacing GitHub-hosted
ubuntu-latest. This alignsseamapi/javascriptwith the runner convention already used inseamapi/seam-connect.Before
All 10 workflow files were 100% on GitHub-hosted
ubuntu-latest:_build.yml(build)_publish.yml(publish)automerge.yml(merge)check.yml(test matrix, lint, install matrix, typecheck)format.yml(commit)generate.yml(commit)prune.yml(branches)publish.yml(release)semantic-release.yml(semantic, release)version.yml(tag)After
Each job is pinned to a Namespace
namespace-profile-*label appropriate for the work it does:runs-on_build.ymlnamespace-profile-codegen_publish.ymlnamespace-profile-standardautomerge.ymlnamespace-profile-minicheck.ymlnamespace-profile-npm-test(viamatrix.os)check.ymlnamespace-profile-codegencheck.ymlnamespace-profile-codegen(viamatrix.os)check.ymlnamespace-profile-codegenformat.ymlnamespace-profile-minigenerate.ymlnamespace-profile-codegenprune.yml'namespace-profile-mini'(quoting preserved)publish.ymlnamespace-profile-standardsemantic-release.ymlnamespace-profile-standardversion.ymlnamespace-profile-miniFor
check.yml, thetestandinstalljobs still useruns-on: ${{ matrix.os }}. Their matrixoslist (previously the single valueubuntu-latest, with a matchinginclude: - os: ubuntu-latest, os_name: Linux) now carries the appropriate Namespace label, keeping the matrix shape intact.Notes
RUNNER_OVERRIDEfallback. Labels are hard-coded per the request; there is novars.RUNNER_OVERRIDE == 'github' && 'ubuntu-latest' || ...conditional. An outage would require a YAML revert, not flipping a repo variable.runs-oninput override to the reusable workflows:_build.ymland_publish.ymldo not declare aruns-oninput, and their callers (publish.yml,check.yml,semantic-release.yml) invoke them with only artifact/registry inputs — so pinning the runner inside each reusable workflow is safe.Test plan
namespace-profile-mini,namespace-profile-codegen,namespace-profile-npm-test, andnamespace-profile-standardrunners available for this repo before marking ready-for-reviewformat.ymlandgenerate.ymlrun on a pushed branch (they only fire on non-mainpushes)semantic-release/publish/versioncycle, confirm the release path (semantic -> version -> publish) still functions end-to-end🤖 Generated with Claude Code
https://claude.ai/code/session_015ZbCLvCAyCca1zguyCbHT5
Generated by Claude Code