ci: add e2e tests to PR checks
Add a PR E2E workflow that runs the Playwright onboarding test on every PR targeting master. Generates a minimal config file and lets Playwright manage the server lifecycle. Runs in skip_llm mode so no secrets are required. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
70
.github/workflows/pr-e2e.yml
vendored
Normal file
70
.github/workflows/pr-e2e.yml
vendored
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
name: PR E2E
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: pr-e2e-${{ github.event.pull_request.number }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
e2e:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 30
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup pnpm
|
||||||
|
uses: pnpm/action-setup@v4
|
||||||
|
with:
|
||||||
|
version: 9.15.4
|
||||||
|
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
cache: pnpm
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: pnpm install --no-frozen-lockfile
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: pnpm build
|
||||||
|
|
||||||
|
- name: Install Playwright
|
||||||
|
run: npx playwright install --with-deps chromium
|
||||||
|
|
||||||
|
- name: Generate Paperclip config
|
||||||
|
run: |
|
||||||
|
mkdir -p ~/.paperclip/instances/default
|
||||||
|
cat > ~/.paperclip/instances/default/config.json << 'CONF'
|
||||||
|
{
|
||||||
|
"$meta": { "version": 1, "updatedAt": "2026-01-01T00:00:00.000Z", "source": "onboard" },
|
||||||
|
"database": { "mode": "embedded-postgres" },
|
||||||
|
"logging": { "mode": "file" },
|
||||||
|
"server": { "deploymentMode": "local_trusted", "host": "127.0.0.1", "port": 3100 },
|
||||||
|
"auth": { "baseUrlMode": "auto" },
|
||||||
|
"storage": { "provider": "local_disk" },
|
||||||
|
"secrets": { "provider": "local_encrypted", "strictMode": false }
|
||||||
|
}
|
||||||
|
CONF
|
||||||
|
|
||||||
|
- name: Run e2e tests
|
||||||
|
env:
|
||||||
|
PAPERCLIP_E2E_SKIP_LLM: "true"
|
||||||
|
CI: ""
|
||||||
|
run: pnpm run test:e2e
|
||||||
|
|
||||||
|
- name: Upload Playwright report
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
if: always()
|
||||||
|
with:
|
||||||
|
name: playwright-report
|
||||||
|
path: |
|
||||||
|
tests/e2e/playwright-report/
|
||||||
|
tests/e2e/test-results/
|
||||||
|
retention-days: 14
|
||||||
Reference in New Issue
Block a user