Skip to content

Commit 1d23791

Browse files
committed
chore: align test_docker container launch with playwright-browsers
Mirrors the docker run flags used by microsoft/playwright-browsers' tests-docker.yml so the Java and Node test environments stay in sync. - run as pwuser (--user=pwuser --workdir /home/pwuser) instead of root - explicit --platform linux/<arch> - drop --ipc=host; set --shm-size=2g instead - deliver the repo via docker cp + chown rather than a bind mount, and move the image-baked /root/.m2 into pwuser's home so the locally-installed SNAPSHOT artifacts resolve - paths /root/playwright -> /home/pwuser/playwright This is expected to fix the probabilistic chrome-headless-shell SIGSEGV crashes observed on jammy in CI.
1 parent d84a2db commit 1d23791

1 file changed

Lines changed: 30 additions & 5 deletions

File tree

.github/workflows/test_docker.yml

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,24 +28,49 @@ jobs:
2828
matrix:
2929
flavor: [jammy, noble]
3030
runs-on: [ubuntu-24.04, ubuntu-24.04-arm]
31+
include:
32+
- runs-on: ubuntu-24.04
33+
arch: amd64
34+
- runs-on: ubuntu-24.04-arm
35+
arch: arm64
3136
steps:
3237
- uses: actions/checkout@v6
3338
- name: Build Docker image
3439
run: |
35-
ARCH="${{ matrix.runs-on == 'ubuntu-24.04-arm' && 'arm64' || 'amd64' }}"
36-
bash utils/docker/build.sh --$ARCH ${{ matrix.flavor }} playwright-java:localbuild-${{ matrix.flavor }}
40+
bash utils/docker/build.sh --${{ matrix.arch }} ${{ matrix.flavor }} playwright-java:localbuild-${{ matrix.flavor }}
3741
- name: Start container
3842
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)
43+
CONTAINER_ID=$(docker run \
44+
--rm \
45+
--name playwright-docker-test \
46+
--platform linux/${{ matrix.arch }} \
47+
--user=pwuser \
48+
--workdir /home/pwuser \
49+
--shm-size=2g \
50+
-e CI \
51+
-e PW_MAX_RETRIES \
52+
-d -t \
53+
playwright-java:localbuild-${{ matrix.flavor }} /bin/bash)
4054
echo "CONTAINER_ID=$CONTAINER_ID" >> $GITHUB_ENV
4155
56+
- name: Copy repository inside docker container
57+
run: |
58+
docker cp . "$CONTAINER_ID":/home/pwuser/playwright
59+
# /root/.m2 was populated as root during image build; move it to
60+
# pwuser so the locally-installed SNAPSHOT artifacts resolve.
61+
docker exec --user root "$CONTAINER_ID" bash -c '
62+
chown -R pwuser /home/pwuser/playwright
63+
mv /root/.m2 /home/pwuser/.m2
64+
chown -R pwuser /home/pwuser/.m2
65+
'
66+
4267
- name: Run test in container
4368
run: |
44-
docker exec "$CONTAINER_ID" /root/playwright/tools/test-local-installation/create_project_and_run_tests.sh
69+
docker exec "$CONTAINER_ID" /home/pwuser/playwright/tools/test-local-installation/create_project_and_run_tests.sh
4570
4671
- name: Test ClassLoader
4772
run: |
48-
docker exec "${CONTAINER_ID}" /root/playwright/tools/test-spring-boot-starter/package_and_run_async_test.sh
73+
docker exec "${CONTAINER_ID}" /home/pwuser/playwright/tools/test-spring-boot-starter/package_and_run_async_test.sh
4974
5075
- name: Stop container
5176
run: |

0 commit comments

Comments
 (0)