Skip to content

feat: open the issue-report modal from the error fallback #27395

feat: open the issue-report modal from the error fallback

feat: open the issue-report modal from the error fallback #27395

Workflow file for this run

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