Skip to content

Support job containers, service containers, and Docker container actions #113

Description

@gjkim42

Context

GitHub Actions supports job-level container, per-job services, and action metadata with runs.using: docker. Open Actions rejects the job fields during workflow validation and rejects Docker action metadata during action preparation.

Issue #35 provides a Docker-capable runner for workflow commands such as Buildx and Kind. That capability does not implement these workflow and action contracts.

Goal

Provide GitHub-compatible containerized job, service, and Docker action behavior while retaining Open Actions isolation and scheduling guarantees.

Acceptance criteria

  • Parse and validate all documented scalar and mapping forms of jobs.<job_id>.container and jobs.<job_id>.services.
  • Support documented image, credentials, environment, ports, volumes, and options behavior.
  • Make service hostnames, port mappings, health checks, and network reachability match GitHub-visible behavior for container and host jobs.
  • Run shell steps and actions inside the job container when configured, with compatible workspace, command-file, tool-cache, and environment mounts.
  • Support Docker container actions from registry images and Dockerfiles, including inputs, entrypoint, arguments, environment, workspace state, and cleanup.
  • Keep credentials, networks, containers, and volumes isolated per job and clean them up after success, failure, timeout, and cancellation.
  • Define runner capability matching so incompatible jobs remain queued rather than failing after assignment.
  • Add end-to-end coverage for a container job, multiple services, registry credentials, a Dockerfile action, an image action, failure cleanup, and cancellation cleanup.
  • Document administrator prerequisites without changing workflow-visible semantics.

References:

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions