Skip to content

Extract job.yml steps into composite actions#63

Open
Tim-Pohlmann wants to merge 8 commits into
feat/multi-provider-model-passthroughfrom
infra/job-yml-composite-actions
Open

Extract job.yml steps into composite actions#63
Tim-Pohlmann wants to merge 8 commits into
feat/multi-provider-model-passthroughfrom
infra/job-yml-composite-actions

Conversation

@Tim-Pohlmann

Copy link
Copy Markdown
Owner

Summary

  • Pulls the duplicated download-rix / run-rix-job / submit-rix-job steps out of job.yml's run and create-pr jobs into .github/actions/{download-rix,run-rix-job,submit-rix-job}.
  • No behavior change for consumers of job.yml - pure refactor.
  • Stacked on Add generic model+provider passthrough, default to opencode #61 (needs the --model plumbing it adds).
  • Unblocks a follow-up PR that reuses these composite actions directly in a live CI integration test, so the test exercises the same production code path instead of a hand-copied mirror of it.

Test plan

  • CI green (dolphin, scripts/actionlint, test, analyze)
  • Manually inspect a job.yml consumer run once merged, to confirm no behavior change

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.yml with uses: ./.github/actions/run-rix-job and uses: ./.github/actions/submit-rix-job.
  • Add composite actions: download-rix, run-rix-job, and submit-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.

Comment thread .github/workflows/job.yml Outdated
Comment thread .github/workflows/job.yml Outdated
Comment thread .github/workflows/job.yml Outdated
Comment thread .github/workflows/job.yml Outdated
Comment thread .github/actions/download-rix/action.yml Outdated
Tim-Pohlmann and others added 5 commits July 9, 2026 17:40
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.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Tim-Pohlmann and others added 3 commits July 9, 2026 20:54
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.
@sonarqubecloud

sonarqubecloud Bot commented Jul 9, 2026

Copy link
Copy Markdown

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated 4 comments.

Comment thread .github/workflows/job.yml
Comment thread .github/workflows/job.yml
Comment thread .github/actions/run-rix-job/action.yml
Comment thread .github/actions/submit-rix-job/action.yml
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