Skip to content

Commit 35d030a

Browse files
yury-sclaude
andcommitted
test_docker: align container launch options with playwright-browsers
Mirrors the docker run flags used by playwright-browsers' tests-docker.yml to test the hypothesis that running the suite as root with --ipc=host is responsible for probabilistic chrome-headless-shell SIGSEGV crashes on jammy. Changes vs. previous: - drop --ipc=host - run as pwuser (not root), workdir /home/pwuser - explicit --platform linux/<arch> - copy repo via docker cp + chown (instead of bind mount at /root) - paths /root/playwright -> /home/pwuser/playwright - add workflow_dispatch trigger so the branch can be tested manually Other workflows on this branch are disabled (renamed *.yml.disabled) to avoid burning CI minutes on the experiment. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent d84a2db commit 35d030a

5 files changed

Lines changed: 21 additions & 3 deletions

File tree

File renamed without changes.

.github/workflows/test_docker.yml

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
name: Docker
22
on:
3+
workflow_dispatch:
34
push:
45
paths:
56
- '.github/workflows/test_docker.yml'
@@ -36,16 +37,33 @@ jobs:
3637
bash utils/docker/build.sh --$ARCH ${{ matrix.flavor }} playwright-java:localbuild-${{ matrix.flavor }}
3738
- name: Start container
3839
run: |
39-
CONTAINER_ID=$(docker run --rm -e CI -e PW_MAX_RETRIES --ipc=host -v "$(pwd)":/root/playwright --name playwright-docker-test -d -t playwright-java:localbuild-${{ matrix.flavor }} /bin/bash)
40+
ARCH="${{ matrix.runs-on == 'ubuntu-24.04-arm' && 'arm64' || 'amd64' }}"
41+
CONTAINER_ID=$(docker run \
42+
--rm \
43+
--name playwright-docker-test \
44+
--platform linux/$ARCH \
45+
--user=pwuser \
46+
--workdir /home/pwuser \
47+
-e CI \
48+
-e PW_MAX_RETRIES \
49+
-d -t \
50+
playwright-java:localbuild-${{ matrix.flavor }} /bin/bash)
4051
echo "CONTAINER_ID=$CONTAINER_ID" >> $GITHUB_ENV
4152
53+
- name: Copy repository inside docker container
54+
run: |
55+
docker cp . "$CONTAINER_ID":/home/pwuser/playwright
56+
docker exec --user root "$CONTAINER_ID" chown -R pwuser /home/pwuser/playwright
57+
docker exec --user root --workdir /home/pwuser/playwright "$CONTAINER_ID" \
58+
git config --global --add safe.directory /home/pwuser/playwright
59+
4260
- name: Run test in container
4361
run: |
44-
docker exec "$CONTAINER_ID" /root/playwright/tools/test-local-installation/create_project_and_run_tests.sh
62+
docker exec "$CONTAINER_ID" /home/pwuser/playwright/tools/test-local-installation/create_project_and_run_tests.sh
4563
4664
- name: Test ClassLoader
4765
run: |
48-
docker exec "${CONTAINER_ID}" /root/playwright/tools/test-spring-boot-starter/package_and_run_async_test.sh
66+
docker exec "${CONTAINER_ID}" /home/pwuser/playwright/tools/test-spring-boot-starter/package_and_run_async_test.sh
4967
5068
- name: Stop container
5169
run: |

0 commit comments

Comments
 (0)