60 lines
1.7 KiB
YAML
60 lines
1.7 KiB
YAML
---
|
|
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
|