Fix test-runner volume mount for DinD workspace
Some checks failed
CI/CD / detect-changes (pull_request) Successful in 5s
CI/CD / test-frontend (pull_request) Successful in 6s
CI/CD / test-go-pg (pull_request) Successful in 2m48s
CI/CD / test-sqlite (pull_request) Successful in 2m50s
CI/CD / test-runners (pull_request) Failing after 16s
CI/CD / build-and-deploy (pull_request) Has been skipped
Some checks failed
CI/CD / detect-changes (pull_request) Successful in 5s
CI/CD / test-frontend (pull_request) Successful in 6s
CI/CD / test-go-pg (pull_request) Successful in 2m48s
CI/CD / test-sqlite (pull_request) Successful in 2m50s
CI/CD / test-runners (pull_request) Failing after 16s
CI/CD / build-and-deploy (pull_request) Has been skipped
In Gitea runner pods, the repo checkout lives in a Docker volume, not a host path. The `.:/work` mount in docker-compose.ci.yml resolved to the Docker daemon's CWD (empty), causing "No such file or directory". Resolve the actual Docker volume backing the CI workspace at runtime and pass it via CI_WORKSPACE_VOLUME env var. Falls back to `.` for local (non-DinD) usage. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -384,12 +384,32 @@ jobs:
|
|||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
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)
|
- name: Run surface tests (compose)
|
||||||
env:
|
env:
|
||||||
BUNDLED_PACKAGES: '*'
|
BUNDLED_PACKAGES: '*'
|
||||||
ARMATURE_ADMIN_USERNAME: admin
|
ARMATURE_ADMIN_USERNAME: admin
|
||||||
ARMATURE_ADMIN_PASSWORD: admin
|
ARMATURE_ADMIN_PASSWORD: admin
|
||||||
ARMATURE_ADMIN_EMAIL: admin@test.local
|
ARMATURE_ADMIN_EMAIL: admin@test.local
|
||||||
|
CI_WORKSPACE_VOLUME: ${{ steps.ws.outputs.CI_WORKSPACE_VOLUME }}
|
||||||
run: |
|
run: |
|
||||||
docker compose -f docker-compose.yml -f docker-compose.ci.yml up --build \
|
docker compose -f docker-compose.yml -f docker-compose.ci.yml up --build \
|
||||||
--abort-on-container-exit \
|
--abort-on-container-exit \
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ services:
|
|||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
working_dir: /work
|
working_dir: /work
|
||||||
volumes:
|
volumes:
|
||||||
- .:/work
|
- ${CI_WORKSPACE_VOLUME:-.}:/work
|
||||||
environment:
|
environment:
|
||||||
SERVER_URL: http://armature:80
|
SERVER_URL: http://armature:80
|
||||||
ADMIN_USER: admin
|
ADMIN_USER: admin
|
||||||
|
|||||||
Reference in New Issue
Block a user