Add GitHub runner dynamic provider runtime image#30
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a runnable “dynamic provider” runtime for github-actions-runner-job, plus a plugin-owned sidecar HTTP endpoint for triggering workflow_dispatch, and a Docker image definition to run the runner job on top of GitHub’s official actions-runner base image.
Changes:
- Extend the internal GitHub runner provider module/client with workflow dispatch support (module method + HTTP endpoint + client call).
- Update
github-actions-runner-jobto support both--specmode and dynamic-provider-envelope mode (stdin envelope + sidecar calls + runner execution + proof artifact output). - Add tests for dispatch and dynamic-envelope runtime wiring, and add a Dockerfile for the runtime image.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| internal/runner_provider_test.go | Adds tests for dispatching a workflow via the GitHub client and provider HTTP handler. |
| internal/module_runner_provider.go | Adds DispatchWorkflow to the runner client interface, implementation, module method dispatch, and HTTP route/handler. |
| cmd/github-actions-runner-job/main.go | Implements dynamic provider envelope decoding, sidecar client, runner execution driver, and proof artifact emission. |
| cmd/github-actions-runner-job/main_test.go | Adds an end-to-end-style unit test exercising envelope → sidecar → runner script flow, plus missing-env validation. |
| cmd/github-actions-runner-job/Dockerfile | Defines a runtime image layering the runner job binary on actions-runner. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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
github-actions-runner-jobto consume the workflow-compute dynamic provider envelope from stdin instead of being spec-only.workflow_dispatchwithout putting GitHub provider logic or tokens in workflow-compute.actions-runnerimage.Notes
COMPUTE_GITHUB_RUNNER_PROVIDER_URLandCOMPUTE_GITHUB_RUNNER_PROVIDER_TOKEN; the sidecar keeps the GitHub token.github-runner-proof.jsonand emits it via the dynamic-provider artifact list.write:packages:denied: permission_denied: The token provided does not match expected scopes. Local arm64/amd64 images build and run spec mode.TDD / regression proof
GOWORK=off go test ./cmd/github-actions-runner-job -run TestT915 -count=1failed withundefined: runWithIObefore command runtime wiring.GOWORK=off go test ./internal -run TestT915_GitHubRunner -count=1failed withclient.DispatchWorkflow undefinedbefore sidecar dispatch support.GOWORK=off go test ./... -count=1.Local image proof
ghcr.io/gocodealone/workflow-plugin-github/github-actions-runner-job:dev-arm64locally, image idsha256:6c5f4b88f0b653b42dba47f81f8b12e06c266b1935c2243d9b0c38eeb9bdc5a9.ghcr.io/gocodealone/workflow-plugin-github/github-actions-runner-job:dev-amd64locally, image idsha256:00b569de36c25995193cc21ac50a94da7a8de93f6513dc1d377b464aed1c2ad1.docker run --rm --platform linux/arm64 -i ...:dev-arm64 --specemitted the expected deterministic runner spec.docker run --rm --platform linux/amd64 -i ...:dev-amd64 --specemitted the expected deterministic runner spec.Adversarial self-review
workflow-plugin-github; workflow-compute only passes generic env and envelope.write:packagesauth or a functioning release workflow.Verification
git diff --checkGOWORK=off go test ./... -count=1