Skip to content

Improve playwright workflow installing performance #1846

Improve playwright workflow installing performance

Improve playwright workflow installing performance #1846

Workflow file for this run

name: Running Playwright test on UI
# Run the workflow when code is pushed or when a pull request is created
on:
push:
branches:
- 'main'
pull_request:
env:
FRONT_DOOR_USERNAME: ${{ secrets.FRONT_DOOR_USERNAME }}
FRONT_DOOR_PASSWORD: ${{ secrets.FRONT_DOOR_PASSWORD }}
COVEO_CREDENTIALS_BASE_URL: ${{ secrets.COVEO_CREDENTIALS_BASE_URL }}
BROWSERS: "webkit firefox"
jobs:
playwright:
name: Run Playwright
runs-on: ubuntu-latest
container:
image: mcr.microsoft.com/playwright:v1.55.1-jammy
steps:
# Checkout the repository so the workflow has access to the code
- name: Checkout code
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
- name: Setup Hugo
uses: peaceiris/actions-hugo@75d2e84710de30f6ff7268e08f310b60ef14033f # v3.0.0
with:
hugo-version: '0.147.8'
extended: true
- uses: actions/setup-go@v6
with:
go-version: '1.24.6'
- run: go version
- name: Install dependencies
run: cd tests && npm ci && npx playwright install --with-deps ${{ env.BROWSERS }} --only-shell
- name: Run Playwright tests
id: test-ui
run: |
cd exampleSite && sed -i.bkp 's/disable_coveo = .*/disable_coveo = false/' hugo.toml && hugo mod get && hugo --gc --config hugo.toml,hugo.test.toml && hugo serve --port 1313 --config hugo.toml,hugo.test.toml
cd ../tests && npx playwright test | tee output.log
if grep -q "failed" output.log; then
echo "Playwright tests failed. Please view the Playwright report to see full error."
exit 1
fi
- uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
id: artifact-upload
if: ${{ !cancelled() && failure() && steps.test-ui.conclusion == 'failure' }}
with:
name: playwright-report
path: tests/playwright-report/
retention-days: 3
- name: Comment on PR with Playwright report
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
if: ${{ failure() }}
with:
script: |
const body = `### <span aria-hidden="true">❌</span> Playwright differences were detected.
View the [Playwright report](${{ steps.artifact-upload.outputs.artifact-url }})`;
await github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: body,
});