Skip to content

feat(ci): run docker:// container actions#381

Merged
zoetaka38 merged 1 commit into
mainfrom
feat/ci-docker-actions
Jul 7, 2026
Merged

feat(ci): run docker:// container actions#381
zoetaka38 merged 1 commit into
mainfrom
feat/ci-docker-actions

Conversation

@zoetaka38

Copy link
Copy Markdown
Contributor

uses: docker://<image> steps now execute instead of being skipped — the one uses: category that's self-contained (no Actions JS toolkit needed).

Behavior

  • The image runs with the job workspace bind-mounted (/github/workspace), network isolated (--network none), and the step's with: inputs passed as GitHub-style INPUT_* env vars (uppercased, non-alphanumeric → _, ${{ }} interpolated).
  • Output is captured as job log lines (secret-masked); a non-zero exit fails the job.
  • The container runner is injectable for tests.

JS/marketplace actions (which need the full Actions runtime + action registry) remain logged as unsupported and skipped without failing the run — a deliberate scope boundary.

Verified live

uses: docker://og-test-action:latest with with: {greeting: hello-from-workflow, my-name: ${{ github.actor }}}:

Run docker://og-test-action:latest
action says: greeting=hello-from-workflow name=alice   # dash normalized, actor interpolated
after action                                            # following run step still executes
run -> success

Unit tests cover input env construction (incl. dash normalization), image extraction, and failure handling with an injected runner.

@orange-codens

orange-codens Bot commented Jul 7, 2026

Copy link
Copy Markdown

🍊 Orange Codens レビュー

指摘事項はありません。✨

head: 2a83fc5 | 🍊 Reviewed by Orange Codens — AI code review & security audit

`uses: docker://<image>` steps now execute instead of being skipped. The image
runs with the job workspace bind-mounted, network isolated, and the step's
`with:` inputs passed as GitHub-style INPUT_* env vars (uppercased, non-alnum
to underscore, ${{ }} interpolated). Output is captured as job log lines
(secret-masked) and a non-zero exit fails the job. The container runner is
injectable for tests.

Non-checkout, non-docker actions (JS/marketplace actions, which require the
full Actions runtime) remain logged as unsupported and skipped without failing
the run.

Verified live: `uses: docker://og-test-action:latest` with
`with: {greeting: hello-from-workflow, my-name: ${{ github.actor }}}` runs the
container and logs `greeting=hello-from-workflow name=alice` (dash normalized,
actor interpolated); a following run step still executes.
@zoetaka38 zoetaka38 force-pushed the feat/ci-docker-actions branch from 836d79c to 2a83fc5 Compare July 7, 2026 06:09
@zoetaka38 zoetaka38 merged commit 1e1f68d into main Jul 7, 2026
20 checks passed
@zoetaka38 zoetaka38 deleted the feat/ci-docker-actions branch July 7, 2026 06:14
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.

1 participant