feat: open the issue-report modal from the error fallback #27395
Workflow file for this run
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: playwright | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.ref || github.run_id }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| permissions: | |
| contents: read | |
| env: | |
| MARIMO_SKIP_UPDATE_CHECK: 1 | |
| UV_EXCLUDE_NEWER: "7 days" | |
| jobs: | |
| changes: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| playwright: ${{ steps.filter.outputs.playwright }} | |
| steps: | |
| - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 | |
| - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3 | |
| id: filter | |
| with: | |
| filters: | | |
| playwright: | |
| - 'frontend/**' | |
| - 'marimo/**' | |
| - '.github/workflows/playwright.yml' | |
| test: | |
| needs: changes | |
| if: ${{ needs.changes.outputs.playwright == 'true' }} | |
| timeout-minutes: 18 # 2024-01-18 avg: 5.0m max: 7.0m | |
| runs-on: ubuntu-24.04 | |
| container: | |
| # Keep this tag in sync with EXPECTED_PLAYWRIGHT_VERSION below. | |
| image: mcr.microsoft.com/playwright:v1.62.1-noble | |
| permissions: | |
| contents: read | |
| id-token: write # required for Doppler OIDC | |
| defaults: | |
| run: | |
| shell: bash | |
| env: | |
| NODE_ENV: test | |
| DEBUG: "pw:webserver" | |
| steps: | |
| - name: ⬇️ Checkout repo | |
| uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 | |
| - name: 🔧 Trust Git workspace | |
| run: git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
| - name: Write TOML | |
| run: | | |
| echo "[runtime]" > .marimo.toml | |
| echo "auto_instantiate=true" >> .marimo.toml | |
| echo "[experimental]" >> .marimo.toml | |
| echo "layouts=true" >> .marimo.toml | |
| # Turn on automatic instantiation for playwright tests | |
| - name: Update pyproject.toml | |
| run: | | |
| sed -i 's/auto_instantiate = false/auto_instantiate = true/' pyproject.toml | |
| - name: 🛠️ Install build tools | |
| run: | | |
| apt-get update | |
| apt-get install --yes --no-install-recommends make | |
| - name: 🔐 Fetch Doppler secrets | |
| # Skip on PRs from forks: id-token write is downgraded to read, so OIDC fails. | |
| # Downstream tokens (TURBO_TOKEN, CODECOV_TOKEN) are optional and tolerate empty. | |
| if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository | |
| uses: dopplerhq/secrets-fetch-action@cd2efbf9a404504316435873eff298b82f7e0562 # v1.3.0 | |
| id: secrets | |
| with: | |
| auth-method: oidc | |
| doppler-identity-id: ${{ vars.DOPPLER_IDENTITY_ID }} | |
| doppler-project: marimo-oss | |
| doppler-config: ci_test | |
| - name: 📦 Build frontend | |
| uses: ./.github/actions/build-frontend | |
| with: | |
| turbo-token: ${{ steps.secrets.outputs.TURBO_TOKEN }} | |
| codecov-token: ${{ steps.secrets.outputs.CODECOV_TOKEN }} | |
| - name: 🐍 Setup uv | |
| uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7 | |
| with: | |
| enable-cache: true | |
| python-version: 3.12 | |
| - name: 🐍 Install marimo | |
| run: | | |
| echo "MARIMO_VERSION=$(uv run marimo --version)" >> $GITHUB_ENV | |
| - name: 🎭 Verify Playwright image version | |
| working-directory: ./frontend | |
| env: | |
| EXPECTED_PLAYWRIGHT_VERSION: 1.62.1 | |
| run: | | |
| ACTUAL_PLAYWRIGHT_VERSION=$(pnpm exec playwright --version) | |
| ACTUAL_PLAYWRIGHT_VERSION=${ACTUAL_PLAYWRIGHT_VERSION#Version } | |
| if [[ "$ACTUAL_PLAYWRIGHT_VERSION" != "$EXPECTED_PLAYWRIGHT_VERSION" ]]; then | |
| echo "Playwright package $ACTUAL_PLAYWRIGHT_VERSION does not match image $EXPECTED_PLAYWRIGHT_VERSION" >&2 | |
| exit 1 | |
| fi | |
| - name: 🎭 Run Playwright tests | |
| working-directory: ./frontend | |
| run: pnpm playwright test | |
| env: | |
| VITE_MARIMO_VERSION: ${{ env.MARIMO_VERSION }} | |
| # - name: ☁️ Google Auth | |
| # uses: google-github-actions/auth@c200f3691d83b41bf9bbd8638997a462592937ed # v2 | |
| # # Skip on forks | |
| # if: github.event.pull_request.head.repo.organization == 'marimo-team' | |
| # with: | |
| # credentials_json: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }} | |
| # - name: 🌲 Get branch name | |
| # id: branch-name | |
| # uses: tj-actions/branch-names@6c999acf206f5561e19f46301bb310e9e70d8815 # v7 | |
| # - name: 📦 Upload to bucket (PR) | |
| # uses: google-github-actions/upload-cloud-storage@c0f6160ff80057923ff50e5e567695cea181ec23 # v2 | |
| # # Only on PRs and not forks | |
| # if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.organization == 'marimo-team' | |
| # with: | |
| # destination: marimo-oss-visual-snapshots/branches/${{ steps.branch-name.outputs.current_branch }} | |
| # path: frontend/e2e-tests/screenshots | |
| # - name: 📦 Upload to bucket (main) | |
| # uses: google-github-actions/upload-cloud-storage@c0f6160ff80057923ff50e5e567695cea181ec23 # v2 | |
| # # Only on main branch and not forks | |
| # if: github.event_name == 'push' && github.ref == 'refs/heads/main' && github.event.pull_request.head.repo.organization == 'marimo-team' | |
| # with: | |
| # destination: marimo-oss-visual-snapshots/main | |
| # path: frontend/e2e-tests/screenshots | |
| - name: 📊 Upload report | |
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6 | |
| if: always() | |
| with: | |
| name: playwright-report | |
| path: frontend/playwright-report/ | |
| retention-days: 1 |