chore(deps): bump js-yaml in /apps/frontend/src #90
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: e2e | |
| # Browser end-to-end tests against the full docker compose stack, built to its | |
| # production targets. Not on every PR: it builds every engine image and boots | |
| # the whole system, which is minutes, not seconds. Runs on the release PR, on | |
| # any PR labelled `e2e`, nightly and on demand, and can be pointed at a | |
| # deployed site. | |
| on: | |
| pull_request: | |
| branches: ["main"] | |
| types: [opened, synchronize, reopened, labeled] | |
| workflow_dispatch: | |
| inputs: | |
| base_url: | |
| description: "Test a deployed site instead of a fresh compose stack (skips the build)" | |
| required: false | |
| default: "" | |
| type: string | |
| schedule: | |
| - cron: "30 3 * * *" | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: e2e-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| e2e: | |
| if: >- | |
| github.event_name != 'pull_request' | |
| || startsWith(github.head_ref, 'release-please--') | |
| || contains(github.event.pull_request.labels.*.name, 'e2e') | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 30 | |
| env: | |
| COMPOSE_FILE: docker-compose.yml:docker-compose.e2e.yml | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Bring up the stack | |
| if: ${{ github.event.inputs.base_url == '' }} | |
| run: | | |
| docker compose up --build -d | |
| # Wait for the gateway and the frontend to answer before testing. | |
| for url in http://localhost:8080/healthz http://localhost:3000/; do | |
| for i in $(seq 1 24); do | |
| if curl -fsS --max-time 5 "$url" >/dev/null 2>&1; then echo "up: $url"; break; fi | |
| if [ "$i" = "24" ]; then echo "timed out: $url" >&2; docker compose logs >&2; exit 1; fi | |
| sleep 5 | |
| done | |
| done | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| cache-dependency-path: e2e/package-lock.json | |
| - name: Install Playwright | |
| working-directory: e2e | |
| run: | | |
| npm ci | |
| npx playwright install --with-deps chromium | |
| # Catches a spec that stopped compiling before spending minutes booting a | |
| # browser against a stack that is already up. | |
| - name: Typecheck the suite | |
| working-directory: e2e | |
| run: npm run typecheck | |
| - name: Run e2e | |
| working-directory: e2e | |
| env: | |
| E2E_BASE_URL: ${{ github.event.inputs.base_url || 'http://localhost:3000' }} | |
| run: npm test | |
| - name: Stack logs on failure | |
| if: ${{ failure() && github.event.inputs.base_url == '' }} | |
| run: docker compose logs --no-color | tail -300 | |
| - uses: actions/upload-artifact@v4 | |
| if: ${{ !cancelled() }} | |
| with: | |
| name: playwright-report | |
| path: e2e/playwright-report/ | |
| retention-days: 7 |