Build CI scripts into test-runner image instead of volume mount
Some checks failed
CI/CD / detect-changes (pull_request) Successful in 3s
CI/CD / test-frontend (pull_request) Successful in 6s
CI/CD / test-go-pg (pull_request) Successful in 2m50s
CI/CD / test-sqlite (pull_request) Successful in 2m55s
CI/CD / test-runners (pull_request) Failing after 59s
CI/CD / build-and-deploy (pull_request) Has been skipped

DinD volume mounts don't work — the Docker daemon can't see the CI
runner's workspace volume. Instead, COPY ci/ into the Playwright
image at build time via dockerfile_inline. No volume detection needed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-02 09:57:30 +00:00
parent 5a364e75f2
commit 70c23e06a7
2 changed files with 9 additions and 29 deletions

View File

@@ -384,32 +384,12 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
# In DinD (Gitea runners), the workspace is a Docker volume, not a
# host path. Resolve the volume backing $PWD so the test-runner
# container can mount the same checkout.
- name: Resolve workspace volume
id: ws
run: |
# The CI runner's own container has the workspace mounted.
# Find which Docker volume backs the current working directory.
SELF=$(cat /proc/1/cpuset 2>/dev/null | sed 's|.*/||' || hostname)
VOL=$(docker inspect "$SELF" 2>/dev/null \
| grep -oP '"Source":\s*"\K[^"]+' \
| head -1) || true
if [ -z "$VOL" ]; then
# Fallback: current directory (works for non-DinD environments)
VOL="."
fi
echo "CI_WORKSPACE_VOLUME=${VOL}" >> "$GITHUB_OUTPUT"
echo "Workspace volume → ${VOL}"
- name: Run surface tests (compose)
env:
BUNDLED_PACKAGES: '*'
ARMATURE_ADMIN_USERNAME: admin
ARMATURE_ADMIN_PASSWORD: admin
ARMATURE_ADMIN_EMAIL: admin@test.local
CI_WORKSPACE_VOLUME: ${{ steps.ws.outputs.CI_WORKSPACE_VOLUME }}
run: |
docker compose -f docker-compose.yml -f docker-compose.ci.yml up --build \
--abort-on-container-exit \