Follow-up: implement routine reordering persistence, API batch reorder, and UI handle interactions #20
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 Tests | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| e2e: | |
| name: E2E Tests | |
| timeout-minutes: 15 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "22" | |
| cache: "npm" | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Install Worker dependencies | |
| run: npm ci | |
| working-directory: worker | |
| - name: Install Playwright Browsers | |
| run: npx playwright install --with-deps chromium | |
| - name: Set up client env | |
| run: | | |
| echo "VITE_API_URL=http://localhost:8787" > client/.env.local | |
| echo "VITE_API_KEY=" >> client/.env.local | |
| - name: Run Playwright tests | |
| run: npx playwright test | |
| - name: Upload HTML report | |
| id: report | |
| uses: actions/upload-artifact@v4 | |
| if: ${{ !cancelled() }} | |
| with: | |
| name: playwright-report | |
| path: playwright-report/ | |
| retention-days: 30 | |
| - name: Upload test screenshots | |
| id: screenshots | |
| uses: actions/upload-artifact@v4 | |
| if: ${{ !cancelled() }} | |
| with: | |
| name: test-screenshots | |
| path: test-results/ | |
| retention-days: 30 | |
| - name: Add test results to job summary | |
| if: ${{ !cancelled() }} | |
| run: | | |
| echo "## π Playwright E2E Test Results" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "| Status | Test |" >> $GITHUB_STEP_SUMMARY | |
| echo "|--------|------|" >> $GITHUB_STEP_SUMMARY | |
| for dir in test-results/*/; do | |
| [ -d "$dir" ] || continue | |
| test_name=$(basename "$dir" | sed 's/-chromium\(-retry[0-9]*\)\{0,1\}$//' | sed 's/-/ /g' | sed 's/^app //') | |
| png=$(find "$dir" -name "*.png" -maxdepth 1 | head -1) | |
| if [ -n "$png" ]; then | |
| if echo "$png" | grep -q "failed"; then | |
| echo "| β | ${test_name} |" >> $GITHUB_STEP_SUMMARY | |
| else | |
| echo "| β | ${test_name} |" >> $GITHUB_STEP_SUMMARY | |
| fi | |
| fi | |
| done | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "π [Download test screenshots](${{ steps.screenshots.outputs.artifact-url }})" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "π [Download HTML report](${{ steps.report.outputs.artifact-url }}) β extract and open \`index.html\` for interactive report with inline screenshots" >> $GITHUB_STEP_SUMMARY |