Skip to content

Improve playwright workflow installing performance #1843

Improve playwright workflow installing performance

Improve playwright workflow installing performance #1843

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
run: |
HUGO_VERSION=0.147.8
ARCH=$(dpkg --print-architecture)
wget -O /tmp/hugo.deb "https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-${ARCH}.deb"
apt-get install -y golang-go
apt-get update && apt-get install -y /tmp/hugo.deb
hugo version
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,
});