Skip to content

ci(workflows): run the shared workflows' own jobs on ARC in private repos - #372

Merged
JesperTerkelsen merged 2 commits into
mainfrom
ci/central-jobs-on-arc
Oct 6, 2026
Merged

JesperTerkelsen merged 2 commits into
mainfrom
ci/central-jobs-on-arc

Conversation

@JesperTerkelsen

Copy link
Copy Markdown
Member

What

The 17 jobs in the shared workflows that still named a GitHub-hosted runner (linux-arm64 / ubuntu-latest) now pick it by the calling repo's visibility:

runs-on: ${{ github.event.repository.private && 'arc-arm64-2cpu-4gb' || 'ubuntu-24.04-arm' }}
Workflow Job
component-deploy.yml, component-deploy-v2.yml deploy (manifest bump + ArgoCD wait)
create-release-tag.yml create-tag
deploy-kotlin.yml, deploy-kotlin-v2.yml create-changelog
deploy-generic.yml, deploy-generic-v2.yml, deploy-python.yml slack-token-deprecation
rollback.yml slackNotification, push-manifest
track-pending-release.yml update-pending-release
pr-digest.yml digest
publish-tech-docs.yml publish-techdocs-site
allow-deploys.yml, block-deploys.yml allow-release, disable-deploy-flows
semgrep-security-scan.yml semgrep → arc-arm64-4cpu-12gb (Semgrep can use a few GB on large repos)
pull-request.yml lint-workflows (this repo is public, so it gets ubuntu-24.04-arm)

The caller examples in the README and workflow guide use arc-arm64-2cpu-4gb, and CLAUDE.md has the change entry.

Why

Moving private-repo CI to ARC to cut GitHub-hosted cost. These jobs run in every repo that deploys through the shared workflows, so one change moves them all. Most are short, and GitHub bills each job as at least a whole minute, so small jobs like these cost more than their runtime suggests.

Compatibility checked

  • The deploy and rollback jobs use yq v4 and jq from the runner. Both are in the ARC image (https://github.com/monta-app/actions-runner). argocd is downloaded by argocd-wait-sync for the runner's architecture, and nothing calls the helm CLI ("helm" only appears in values paths).
  • Public callers, and events without a repository in the payload (schedule), get GitHub's standard ubuntu-24.04-arm, never ARC, which rejects public repositories.

QA

  • actionlint: no new findings.
  • These jobs run in callers' deploys after merge; the first deploys of a few private services should show the deploy, release tag and changelog jobs on arc-arm64-2cpu-4gb.

nojira

🤖 Generated with Claude Code

…epos

The deploy step, release tag, changelog, rollback, pending-release,
PR digest, tech docs, deploy block/allow, semgrep and the Slack-token
deprecation check named GitHub-hosted labels. They now use
arc-arm64-2cpu-4gb (semgrep arc-arm64-4cpu-12gb) when the calling repo
is private, and GitHub's ubuntu-24.04-arm otherwise.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [actionlint] reported by reviewdog 🐶
shellcheck reported issue in this script: SC2016:info:5:86: Expressions don't expand in single quotes, use double quotes for that [shellcheck]

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 7e147bf: the backticks are written as jq's ``` escape, so the shell string has none for shellcheck to flag. Same output: checked with jq and with gh --jq (gojq) on a real comparison.

@JesperTerkelsen
JesperTerkelsen marked this pull request as ready for review October 6, 2026 06:18
@JesperTerkelsen
JesperTerkelsen requested a review from a team as a code owner October 6, 2026 06:18
@JesperTerkelsen
JesperTerkelsen requested review from chandrashekar-dhar and removed request for a team October 6, 2026 06:18
shellcheck read the literal backticks in the --jq filter as a command
substitution that single quotes stop from expanding (SC2016). `
gives the same Markdown and keeps the shell string free of backticks.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@JesperTerkelsen
JesperTerkelsen merged commit 00df40f into main Oct 6, 2026
2 checks passed
@JesperTerkelsen
JesperTerkelsen deleted the ci/central-jobs-on-arc branch October 6, 2026 07:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants