🤖 ci: migrate workflows to Depot runners with tiered sizing#18
Merged
Conversation
Member
Author
|
@codex review Please review this CI migration to Depot runners with tiered sizing and timeout guardrails. |
|
Codex Review: Didn't find any major issues. Can't wait for the next one! ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
ab6f138 to
ad872f9
Compare
Member
Author
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.
Summary
Switch all GitHub Actions jobs in this repository from GitHub-hosted runners to Depot-managed runners, using tiered sizing for lightweight vs heavy jobs.
Background
We want CI and release workflows to run entirely on Depot runners and right-size compute by job type to improve performance and cost control.
Implementation
depot-ubuntu-24.04(changes, lint-actions, codex-comments)depot-ubuntu-24.04-8(lint, test, e2e-kind, publish-main).github/actionlint.yaml/.github/actionlint.ymldepot-ubuntu-24.04-8Validation
Risks
Low risk. Changes are isolated to CI/release workflow configuration and actionlint config. Main risk is environment provisioning differences on Depot runners, mitigated by retaining existing job steps and adding timeout guardrails.
📋 Implementation Plan
Plan: Move coder-k8s GitHub Actions to Depot runners (tiered sizing)
Context / Why
We want to stop using GitHub-hosted runners entirely and run all CI on Depot GitHub Actions runners, while also right-sizing compute:
This should reduce wall-clock time for PR feedback, keep costs predictable, and align with how
coder/muxuses Depot for heavier jobs.Evidence (what was checked)
coder-k8sworkflows currently use GitHub-hosted runners:.github/workflows/ci.yaml(all jobsruns-on: ubuntu-latest).github/workflows/release.yaml(runs-on: ubuntu-latest)coder/muxuses Depot runners for heavier workloads (in its workflows under./tmpfork/mux/.github/workflows/).-4/-8/-16/...labels)Prerequisites / one-time setup
Why this is required
Depot runners are delivered via a GitHub App + webhook-driven runner provisioning. Without the app connection, any job that specifies
runs-on: depot-...will remain queued forever.Runner sizing strategy (recommended baseline)
Use a simple 2-tier Linux setup:
depot-ubuntu-24.04(2 vCPU / 8GB)depot-ubuntu-24.04-8(8 vCPU / 32GB)Rationale:
depot-ubuntu-24.04-8should be a strong speedup vs GitHub’s 2 vCPU runners for Go lint/test and for Docker+Kind.-16(whatcoder/muxuses) until we have timings;coder-k8sis smaller and likely doesn’t need 16 vCPU to be efficient.Job → runner mapping
ci.yamlchangesubuntu-latestdepot-ubuntu-24.04ci.yamllint-actionsubuntu-latestdepot-ubuntu-24.04ci.yamlcodex-commentsubuntu-latestdepot-ubuntu-24.04ci.yamllintubuntu-latestdepot-ubuntu-24.04-8ci.yamltestubuntu-latestdepot-ubuntu-24.04-8ci.yamle2e-kindubuntu-latestdepot-ubuntu-24.04-8ci.yamlpublish-mainubuntu-latestdepot-ubuntu-24.04-8release.yamlgoreleaserubuntu-latestdepot-ubuntu-24.04-8Implementation details (repo changes)
1) Update
.github/workflows/ci.yamlto use Depot runnersEdit each job’s
runs-on:Add cost guardrails to large jobs (recommended):
timeout-minutes(e.g.,lint: 15,test: 20,e2e-kind: 30,publish-main: 20) to prevent runaway spend.2) Update
.github/workflows/release.yamlto use Depot runners3) Ensure there are zero GitHub-hosted runner references
.github/workflows/**forubuntu-latest,windows-latest,macos-latestand replace as needed.depot-ubuntu-latestif you want an evergreen LTS label instead of pinning24.04.Optional: policy for forked PRs
If this repository is public, forked PRs will also execute on Depot runners (cost + untrusted code). Options:
This keeps CI internal-only without falling back to GitHub-hosted runners.
Rollout / validation
e2e-kindorpublish-mainis CPU-starved, bump just those jobs todepot-ubuntu-24.04-16.depot-ubuntu-24.04-4for cost savings.Acceptance criteria
ci.yaml,release.yaml) run with onlydepot-*runner labels (no GitHub-hosted runners).Generated with
mux• Model:openai:gpt-5.3-codex• Thinking:xhigh• Cost:274253{MUX_COSTS_USD:-unknown}