Skip to content

Commit d038c9e

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 - add workflow_dispatch trigger so the workflow can be re-run manually
1 parent d84a2db commit d038c9e

1 file changed

Lines changed: 31 additions & 5 deletions

File tree

.github/workflows/test_docker.yml

Lines changed: 31 additions & 5 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'
@@ -28,24 +29,49 @@ jobs:
2829
matrix:
2930
flavor: [jammy, noble]
3031
runs-on: [ubuntu-24.04, ubuntu-24.04-arm]
32+
include:
33+
- runs-on: ubuntu-24.04
34+
arch: amd64
35+
- runs-on: ubuntu-24.04-arm
36+
arch: arm64
3137
steps:
3238
- uses: actions/checkout@v6
3339
- name: Build Docker image
3440
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 }}
41+
bash utils/docker/build.sh --${{ matrix.arch }} ${{ matrix.flavor }} playwright-java:localbuild-${{ matrix.flavor }}
3742
- name: Start container
3843
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)
44+
CONTAINER_ID=$(docker run \
45+
--rm \
46+
--name playwright-docker-test \
47+
--platform linux/${{ matrix.arch }} \
48+
--user=pwuser \
49+
--workdir /home/pwuser \
50+
--shm-size=2g \
51+
-e CI \
52+
-e PW_MAX_RETRIES \
53+
-d -t \
54+
playwright-java:localbuild-${{ matrix.flavor }} /bin/bash)
4055
echo "CONTAINER_ID=$CONTAINER_ID" >> $GITHUB_ENV
4156
57+
- name: Copy repository inside docker container
58+
run: |
59+
docker cp . "$CONTAINER_ID":/home/pwuser/playwright
60+
# /root/.m2 was populated as root during image build; move it to
61+
# pwuser so the locally-installed SNAPSHOT artifacts resolve.
62+
docker exec --user root "$CONTAINER_ID" bash -c '
63+
chown -R pwuser /home/pwuser/playwright
64+
mv /root/.m2 /home/pwuser/.m2
65+
chown -R pwuser /home/pwuser/.m2
66+
'
67+
4268
- name: Run test in container
4369
run: |
44-
docker exec "$CONTAINER_ID" /root/playwright/tools/test-local-installation/create_project_and_run_tests.sh
70+
docker exec "$CONTAINER_ID" /home/pwuser/playwright/tools/test-local-installation/create_project_and_run_tests.sh
4571
4672
- name: Test ClassLoader
4773
run: |
48-
docker exec "${CONTAINER_ID}" /root/playwright/tools/test-spring-boot-starter/package_and_run_async_test.sh
74+
docker exec "${CONTAINER_ID}" /home/pwuser/playwright/tools/test-spring-boot-starter/package_and_run_async_test.sh
4975
5076
- name: Stop container
5177
run: |

0 commit comments

Comments
 (0)