Skip to content

Optimize PR checks #3503

Optimize PR checks

Optimize PR checks #3503

name: Playwright tests on pr
on:
pull_request:
branches: [main]
types: [opened, synchronize, reopened]
paths:
- 'frontend/**'
- '!frontend/stats/**'
- 'backend/**'
- '.github/workflows/run-playwright-on-pr.yaml'
- 'docker-compose.yml'
- 'Dockerfile'
- 'gitea/**'
- 'package.json'
- 'development/**'
workflow_dispatch:
jobs:
playwright-tests:
name: Build environment and run e2e test
# I need "packages: write" to access GHCR.
# More about permissions here: https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs
permissions: write-all
#permissions:
# id-token: write
# contents: read
timeout-minutes: 25
runs-on: ubuntu-latest
steps:
- name: 'Checking Out Code'
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: 'Installing Dependencies'
uses: ./.github/actions/yarn-install
- name: Generate .env file
run: |
echo PLAYWRIGHT_TEST_APP=autodeploy-v3 >> .env
echo DEVELOP_APP_DEVELOPMENT=0 >> .env
echo DEVELOP_RESOURCE_ADMIN=0 >> .env
echo DEVELOP_BACKEND=0 >> .env
echo DEVELOP_DASHBOARD=0 >> .env
echo DEVELOP_PREVIEW=0 >> .env
echo GITEA_ADMIN_PASS=g9wDIG@6gf >> .env
echo GITEA_ADMIN_USER=localg1iteaadmin >> .env
echo GITEA_CYPRESS_USER=cypress_testuser >> .env
echo GITEA_CYPRESS_PASS=g9wDIG@6gf >> .env
echo GITEA_ORG_USER=ttd >> .env
echo POSTGRES_PASSWORD=kyeDIG@eip >> .env
echo COMMIT= >> .env
echo IGNORE_DOCKER_DNS_LOOKUP=true >> .env
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Cache Docker layers
run: docker buildx bake --file compose.yaml --file compose-cache.json
- name: Run setup.js script
run: |
node ./development/setup.js
- name: Playwright run
working-directory: frontend/testing/playwright
env:
environment: local
run: |
yarn setup:playwright
yarn playwright:test:all
- name: Stop compose file
if: always()
run: docker-compose down
- name: Store artifacts
uses: actions/upload-artifact@v4
if: failure()
with:
name: playwright-screenshots
path: frontend/testing/playwright/test-results