Fix CI DinD networking: replace host mode with compose-internal Playwright
Some checks failed
CI/CD / detect-changes (pull_request) Successful in 4s
CI/CD / test-frontend (pull_request) Successful in 6s
CI/CD / test-go-pg (pull_request) Successful in 2m44s
CI/CD / test-sqlite (pull_request) Successful in 2m48s
CI/CD / test-runners (pull_request) Failing after 2m38s
CI/CD / build-and-deploy (pull_request) Has been skipped
Some checks failed
CI/CD / detect-changes (pull_request) Successful in 4s
CI/CD / test-frontend (pull_request) Successful in 6s
CI/CD / test-go-pg (pull_request) Successful in 2m44s
CI/CD / test-sqlite (pull_request) Successful in 2m48s
CI/CD / test-runners (pull_request) Failing after 2m38s
CI/CD / build-and-deploy (pull_request) Has been skipped
The test-runners job was failing because network_mode: host puts the armature container on DinD's network namespace, unreachable from the workflow container which is on a separate bridge network. Fix: Remove host networking entirely. Add a test-runner service to the CI compose override that runs Playwright tests on the same bridge network as armature, using Docker DNS (http://armature:80). Changes: - docker-compose.ci.yml: Replace network_mode: host with healthcheck on armature + Playwright test-runner service (depends_on: healthy) - ci.yaml: Collapse 7 test-runners steps into 3 (checkout, compose up --exit-code-from test-runner, teardown)
This commit is contained in:
@@ -384,29 +384,16 @@ jobs:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Build Docker image
|
||||
run: docker compose -f docker-compose.yml -f docker-compose.ci.yml build
|
||||
|
||||
- name: Boot server (SQLite, host networking)
|
||||
- name: Run surface tests (compose)
|
||||
env:
|
||||
BUNDLED_PACKAGES: '*'
|
||||
ARMATURE_ADMIN_USERNAME: admin
|
||||
ARMATURE_ADMIN_PASSWORD: admin
|
||||
ARMATURE_ADMIN_EMAIL: admin@test.local
|
||||
run: docker compose -f docker-compose.yml -f docker-compose.ci.yml up -d
|
||||
|
||||
- name: Wait for healthy
|
||||
run: ./ci/wait-for-healthy.sh http://localhost:80 30
|
||||
|
||||
- name: Install Playwright
|
||||
run: npx playwright install --with-deps chromium
|
||||
|
||||
- name: Run surface tests
|
||||
env:
|
||||
SERVER_URL: http://localhost:80
|
||||
ADMIN_USER: admin
|
||||
ADMIN_PASS: admin
|
||||
run: ./ci/run-surface-tests.sh
|
||||
run: |
|
||||
docker compose -f docker-compose.yml -f docker-compose.ci.yml up --build \
|
||||
--abort-on-container-exit \
|
||||
--exit-code-from test-runner
|
||||
|
||||
- name: Teardown
|
||||
if: always()
|
||||
|
||||
Reference in New Issue
Block a user