Skip to content

E2E Workflow

The .github/workflows/e2e.yml workflow runs all three E2E test suites — Docker, Kubernetes, and systemd — as parallel GitHub Actions jobs. It triggers on pushes to main and on pull requests when relevant source paths change.

Trigger Configuration

The workflow uses path-filtered triggers on both push (branches: main) and pull_request:

PathRationale
cmd/**CLI and entrypoint changes
internal/**Core agent logic
deploy/**Dockerfiles, systemd units, Kubernetes manifests
test/e2e/**E2E test scripts and fixtures
DockerfileRoot Dockerfile (if present)
.github/workflows/e2e.ymlSelf-trigger for workflow changes

Changes to docs/, README.md, .planwerk/, or other non-runtime files do not trigger the workflow.

Jobs

All three jobs run in parallel on ubuntu-latest with timeout-minutes: 30. No needs: dependencies exist between them.

docker-e2e

Runs the Docker Compose-based E2E test.

StepAction
Checkoutactions/checkout (pinned SHA)
Setup Goactions/setup-go with go-version: '1.24'
Run testsmake test-e2e-docker
Capture logsdocker compose logs (on failure)
Upload artifactdocker-e2e-logs (on failure)

kubernetes-e2e

Runs the kind-based Kubernetes E2E test.

StepAction
Checkoutactions/checkout (pinned SHA)
Setup Goactions/setup-go with go-version: '1.24'
Install kindgo install sigs.k8s.io/kind@v0.27.0
Run testsmake test-e2e-k8s
Capture logskubectl logs + kubectl describe (on failure)
Upload artifactkubernetes-e2e-logs (on failure)

systemd-e2e

Runs the systemd-in-Docker E2E test.

StepAction
Checkoutactions/checkout (pinned SHA)
Setup Goactions/setup-go with go-version: '1.24'
Run testsmake test-e2e-systemd
Capture logsdocker logs for both containers (on failure)
Upload artifactsystemd-e2e-logs (on failure)

Artifact Upload on Failure

Each job captures logs with if: failure() before uploading via actions/upload-artifact. Log capture uses || true to handle cases where the test script's trap handler has already cleaned up resources.

JobArtifact nameContents
docker-e2edocker-e2e-logsDocker Compose service logs
kubernetes-e2ekubernetes-e2e-logsplexd pod logs, mock-api logs, DaemonSet description, pod status
systemd-e2esystemd-e2e-logsmock-api container logs, systemd container logs

To download artifacts from a failed run, navigate to the workflow run in the Actions tab and find the artifacts listed at the bottom of the run summary page.

Action Versions

All actions use pinned SHAs matching the project convention:

ActionSHAVersion
actions/checkout34e114876b0b11c390a56381ad16ebd13914f8d5v4.3.1
actions/setup-go40f1582b2485089dde7abd97c1529aa768e1baffv5.6.0
actions/upload-artifactea165f8d65b6e75b540449e92b4886f43607fa02v4.6.2

Makefile Targets

TargetCommand
test-e2e-dockerbash test/e2e/docker/test.sh
test-e2e-k8sbash test/e2e/kubernetes/test.sh
test-e2e-systemdbash test/e2e/systemd/test.sh

See also