|
name: Playwright Tests |
|
|
|
on: |
|
push: |
|
branches: |
|
- 4.x |
|
pull_request: |
|
branches: |
|
- '**' |
|
|
|
concurrency: |
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} |
|
cancel-in-progress: true |
|
|
|
env: |
|
CI: true |
|
# Force terminal colors. @see https://www.npmjs.com/package/colors |
|
FORCE_COLOR: 1 |
|
|
|
jobs: |
|
build: |
|
runs-on: ubuntu-latest |
|
timeout-minutes: 30 |
|
|
|
strategy: |
|
matrix: |
|
node-version: [20.x] |
|
|
|
steps: |
|
- uses: actions/checkout@v6 |
|
- name: Use Node.js ${{ matrix.node-version }} |
|
uses: actions/setup-node@v6 |
|
with: |
|
node-version: ${{ matrix.node-version }} |
|
- uses: shivammathur/setup-php@v2 |
|
with: |
|
php-version: 7.4 |
|
- name: npm install |
|
run: | |
|
npm i --force |
|
env: |
|
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: true |
|
- name: Allow Release info Change |
|
run: | |
|
sudo apt-get update --allow-releaseinfo-change |
|
- name: Install browsers and deps |
|
run: npx playwright install && npx playwright install-deps |
|
- name: Start mock server |
|
run: nohup npm run mock-server:start & |
|
- name: Wait for mock server |
|
run: | |
|
for i in {1..20}; do |
|
curl -sSf http://localhost:3001/api/users && break |
|
sleep 1 |
|
done |
|
- name: check |
|
run: './bin/codecept.js check -c test/acceptance/codecept.Playwright.js' |
|
timeout-minutes: 2 |
|
- name: start a server |
|
run: 'php -S 127.0.0.1:8000 -t test/data/app &' |
|
- name: run chromium tests |
|
run: './bin/codecept.js run -c test/acceptance/codecept.Playwright.js --grep @Playwright --debug' |
|
- name: run chromium with restart==browser tests |
|
run: 'BROWSER_RESTART=browser ./bin/codecept.js run -c test/acceptance/codecept.Playwright.js --grep @Playwright --debug' |
|
- name: run chromium with restart==session tests |
|
run: 'BROWSER_RESTART=session ./bin/codecept.js run -c test/acceptance/codecept.Playwright.js --grep @Playwright --debug' |
|
- name: run firefox tests |
|
run: 'BROWSER=firefox node ./bin/codecept.js run -c test/acceptance/codecept.Playwright.js --grep @Playwright --debug' |
|
- name: run webkit tests |
|
run: 'BROWSER=webkit node ./bin/codecept.js run -c test/acceptance/codecept.Playwright.js --grep @Playwright --debug' |
|
- name: run chromium unit tests |
|
run: ./node_modules/.bin/mocha test/helper/Playwright_test.js --timeout 15000 |
|
- name: Stop mock server |
|
run: npm run mock-server:stop |