Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 20 additions & 7 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ jobs:
tests:
name: "Tests (PHP ${{ matrix.php }}, ${{ matrix.browser }}, Selenium ${{ matrix.selenium_version }})${{ matrix.with_coverage == true && ' with coverage' || ''}}"
runs-on: ubuntu-latest
env:
# Selenium 3 runs on the runner with its preinstalled browsers, other versions use Docker images with bundled browsers
SELENIUM_IN_DOCKER: ${{ matrix.selenium_version != '3' }}
strategy:
matrix:
browser: [ 'firefox' ]
Expand Down Expand Up @@ -103,9 +106,19 @@ jobs:
mkdir ./logs
./vendor/bin/mink-test-server &> ./logs/mink-test-server.log &

- name: Start Selenium
- name: Start Selenium in Docker
if: ${{ env.SELENIUM_IN_DOCKER == 'true' }}
run: |
SELENIUM_IMAGE=selenium/standalone-${{ matrix.browser }}:${{ matrix.selenium_version }} docker compose up --wait
echo "WEB_FIXTURES_HOST=http://host.docker.internal:8002" >> "$GITHUB_ENV"
echo "DRIVER_MACHINE_BASE_PATH=/fixtures/" >> "$GITHUB_ENV"

- name: Start Selenium on runner
if: ${{ env.SELENIUM_IN_DOCKER == 'false' }}
run: |
curl -sSLO https://github.com/SeleniumHQ/selenium/releases/download/selenium-3.141.59/selenium-server-standalone-3.141.59.jar
xvfb-run -a java -Dwebdriver.chrome.driver="$CHROMEWEBDRIVER/chromedriver" -Dwebdriver.gecko.driver="$GECKOWEBDRIVER/geckodriver" -jar selenium-server-standalone-3.141.59.jar &> ./logs/selenium.log &
echo "WEB_FIXTURES_HOST=http://localhost:8002" >> "$GITHUB_ENV"

- name: Wait for browser & PHP to start
run: |
Expand All @@ -114,16 +127,18 @@ jobs:

- name: Show browser version
run: |
docker compose exec selenium sh -c 'google-chrome --version || chromium --version || microsoft-edge --version || firefox --version' 2>/dev/null
if [ "$SELENIUM_IN_DOCKER" = true ]; then
docker compose exec selenium sh -c 'google-chrome --version || chromium --version || microsoft-edge --version || firefox --version' 2>/dev/null
else
${{ matrix.browser == 'chrome' && 'google-chrome' || 'firefox' }} --version
fi

- name: Run tests with Coverage
if: "${{ matrix.with_coverage == true }}"
env:
SELENIUM_VERSION: ${{ matrix.selenium_version }}
DRIVER_URL: http://localhost:4444/wd/hub
WEB_FIXTURES_HOST: http://host.docker.internal:8002
WEB_FIXTURES_BROWSER: ${{ matrix.browser }}
DRIVER_MACHINE_BASE_PATH: /fixtures/
run: |
vendor/bin/phpunit -v --coverage-clover=coverage.xml --log-junit junit.xml

Expand All @@ -132,9 +147,7 @@ jobs:
env:
SELENIUM_VERSION: ${{ matrix.selenium_version }}
DRIVER_URL: http://localhost:4444/wd/hub
WEB_FIXTURES_HOST: http://host.docker.internal:8002
WEB_FIXTURES_BROWSER: ${{ matrix.browser }}
DRIVER_MACHINE_BASE_PATH: /fixtures/
run: |
vendor/bin/phpunit -v --log-junit junit.xml

Expand All @@ -154,7 +167,7 @@ jobs:
report_type: test_results

- name: Extract docker logs
if: ${{ failure() }}
if: ${{ failure() && env.SELENIUM_IN_DOCKER == 'true' }}
run: |
docker compose logs --no-color &> ./logs/selenium.log

Expand Down
Loading