--- name: dynamic Pod smoke test # yamllint disable-line rule:truthy on: workflow_dispatch: jobs: pod-smoke: name: pod-smoke runs-on: [self-hosted, pod] timeout-minutes: 5 steps: - name: Verify disposable host environment run: | test -S /run/spire/agent-sockets/spire-agent.sock /opt/spire/bin/spire-agent api fetch jwt \ -audience ci-smoke \ -socketPath /run/spire/agent-sockets/spire-agent.sock \ >/dev/null test "$(id -u)" = 2000 - name: Start job-local Docker shell: bash run: | set -euo pipefail findmnt /var/lib/docker sudo nohup dockerd \ --host=unix:///var/run/docker.sock \ --storage-driver=overlay2 \ >/tmp/dockerd.log 2>&1 & for _ in {1..60}; do if docker info >/dev/null 2>&1; then exit 0 fi sleep 1 done cat /tmp/dockerd.log exit 1 - name: Build and run image shell: bash run: | set -euo pipefail context=$(mktemp -d) cleanup() { docker image rm --force pod-docker-smoke:test \ >/dev/null 2>&1 || true rm -rf -- "$context" } trap cleanup EXIT printf '%s\n' \ 'FROM alpine:3.22' \ 'RUN printf pod-docker-ok >/result' \ >"$context/Dockerfile" docker build --tag pod-docker-smoke:test "$context" output=$(docker run --rm pod-docker-smoke:test cat /result) test "$output" = pod-docker-ok test "$(docker info --format '{{.Driver}}')" = overlay2