59 lines
1.9 KiB
YAML
59 lines
1.9 KiB
YAML
name: Test Docker
|
|
on:
|
|
push:
|
|
paths:
|
|
- '.github/workflows/test_docker.yml'
|
|
- 'setup.py'
|
|
- '**/Dockerfile.*'
|
|
branches:
|
|
- main
|
|
- release-*
|
|
pull_request:
|
|
paths:
|
|
- '.github/workflows/test_docker.yml'
|
|
- 'setup.py'
|
|
- '**/Dockerfile.*'
|
|
branches:
|
|
- main
|
|
- release-*
|
|
jobs:
|
|
build:
|
|
timeout-minutes: 120
|
|
runs-on: ${{ matrix.runs-on }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
docker-image-variant:
|
|
- jammy
|
|
- noble
|
|
runs-on:
|
|
- ubuntu-24.04
|
|
- ubuntu-24.04-arm
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v6
|
|
with:
|
|
python-version: "3.10"
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install -r local-requirements.txt
|
|
pip install -r requirements.txt
|
|
pip install -e .
|
|
- name: Build Docker image
|
|
run: |
|
|
ARCH="${{ matrix.runs-on == 'ubuntu-24.04-arm' && 'arm64' || 'amd64' }}"
|
|
bash utils/docker/build.sh --$ARCH ${{ matrix.docker-image-variant }} playwright-python:localbuild-${{ matrix.docker-image-variant }}
|
|
- name: Test
|
|
run: |
|
|
CONTAINER_ID="$(docker run --rm -e CI -v $(pwd):/root/playwright --name playwright-docker-test --workdir /root/playwright/ -d -t playwright-python:localbuild-${{ matrix.docker-image-variant }} /bin/bash)"
|
|
# Fix permissions for Git inside the container
|
|
docker exec "${CONTAINER_ID}" chown -R root:root /root/playwright
|
|
docker exec "${CONTAINER_ID}" pip install -r local-requirements.txt
|
|
docker exec "${CONTAINER_ID}" pip install -r requirements.txt
|
|
docker exec "${CONTAINER_ID}" pip install -e .
|
|
docker exec "${CONTAINER_ID}" python -m build --wheel
|
|
docker exec "${CONTAINER_ID}" xvfb-run pytest tests/sync/
|
|
docker exec "${CONTAINER_ID}" xvfb-run pytest tests/async/
|