Extract job.yml steps into composite actions#63
Open
Tim-Pohlmann wants to merge 8 commits into
Open
Conversation
This was referenced Jul 7, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
Refactors the reusable workflow (.github/workflows/job.yml) by extracting repeated “download rix / run rix job / submit rix job” logic into local composite actions under .github/actions/, aiming to keep job.yml simpler while preserving external behavior for workflow consumers.
Changes:
- Replace inline shell steps in
job.ymlwithuses: ./.github/actions/run-rix-jobanduses: ./.github/actions/submit-rix-job. - Add composite actions:
download-rix,run-rix-job, andsubmit-rix-job.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
| .github/workflows/job.yml | Switches to local composite actions for running and submitting jobs; adjusts checkout/comments. |
| .github/actions/download-rix/action.yml | New composite action wrapping .github/scripts/download-rix.sh to download/verify the rix binary. |
| .github/actions/run-rix-job/action.yml | New composite action to setup Node, download rix, and run rix job with the existing env wiring. |
| .github/actions/submit-rix-job/action.yml | New composite action to download rix and run rix submit using the provided PAT and output dir. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
download-rix, run-rix-job, and submit-rix-job are each currently duplicated inline across the run/create-pr jobs (or about to be reused by a live multi-config integration test). Pulling them into composite actions removes that duplication and lets both job.yml and CI tests invoke the exact same production logic, instead of a hand-copied mirror of it. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…caller download-rix.sh requires RIX_REPO_SLUG, previously supplied by job.yml's workflow-level env: block. That doesn't reach a composite action invoked from a workflow that doesn't define it (e.g. ci.yml), which failed CI immediately with "RIX_REPO_SLUG is required". The composite action must be self-sufficient regardless of caller. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… .github/actions Consolidates the duplicated checkout-of-download-rix.sh logic across job.yml's two jobs into download-rix itself, so it works standalone from any workflow. job.yml still needs its own checkout for the local `uses: ./...` composite-action references (run-rix-job, submit-rix-job) to resolve, so that checkout is narrowed to .github/actions instead of removed. Ported from test/live-job-yml-plumbing (PR #64), where this was originally applied - it belongs here since it's about the composite actions this PR introduces, not the live test job #64 adds. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
job.yml already defines RIX_REPO_SLUG once and uses it for its own checkouts, but download-rix (and the composite actions that call it) hardcoded Tim-Pohlmann/rix separately, so overriding the repo slug didn't actually take effect end to end.
… download Lets a caller (e.g. CI testing this repo's own unreleased changes) pass rix-bin to skip the release download and use an already-built binary instead. Threaded through run-rix-job and submit-rix-job.
Tim-Pohlmann
force-pushed
the
infra/job-yml-composite-actions
branch
from
July 9, 2026 17:41
ef18627 to
4e29404
Compare
The "Get rix repo (for local composite actions)" checkout previously reused rix-version (which selects the release binary) as the ref for fetching .github/actions/*. A caller pinning rix-version to a tag cut before this composite-action refactor existed would get a checkout missing those action.yml files, failing at runtime (flagged in PR #63's Copilot review). job.workflow_sha always resolves to the exact commit of this job.yml file that's actually running, decoupling the two concerns entirely. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…flow_sha actionlint v1.7.12 doesn't yet recognize these documented job context properties (unlike GitHub's own runner/docs), so narrowly suppress just that error pattern rather than working around a real fix with a lint gap.
…okenizer Its flag parser only understands double-quote grouping (no escaping), so a single-quoted pattern with embedded literal double quotes got mis-split into several bogus positional args (actionlint then tried to lint them as file globs: exit 3, 0 files linted). Use \s/. instead of literal spaces/quotes so the pattern needs no quoting at all.
|
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
job.yml'srunandcreate-prjobs into.github/actions/{download-rix,run-rix-job,submit-rix-job}.job.yml- pure refactor.--modelplumbing it adds).Test plan
job.ymlconsumer run once merged, to confirm no behavior change