Ref: #5 Depends on: #6, #7, #8, #9, #10, #11
Create Gitea Actions workflow that spawns a Docker test pod, runs all Playwright E2E tests, and reports results.
.gitea/workflows/e2e-test.yml
Dockerfile
docker-compose
curl http://localhost:3000
pnpm test:e2e
BASE_URL=http://app:3000
test-results/results.json
test-results/results.xml
playwright-report/
name: E2E Tests on: push: branches: [main] pull_request: branches: [main] workflow_dispatch: jobs: e2e: runs-on: node steps: - uses: actions/checkout@v4 - name: Install Docker run: apt-get update && apt-get install -y docker.io docker-compose - name: Build app image run: docker build -t riotpiao-app:test . - name: Start app container run: docker run -d --name app -p 3000:3000 riotpiao-app:test - name: Wait for app run: | for i in $(seq 1 30); do curl -s http://localhost:3000 && break || sleep 2 done - name: Install deps + Playwright run: | corepack enable && corepack install pnpm install --ignore-scripts npx playwright install --with-deps chromium - name: Run E2E tests run: BASE_URL=http://localhost:3000 pnpm test:e2e --project=chromium env: CI: true - name: Upload report if: always() uses: actions/upload-artifact@v4 with: name: playwright-report path: playwright-report/ - name: Cleanup if: always() run: docker stop app && docker rm app
node
build-push.yml
NEXT_PUBLIC_COMMIT_SHA
/api/chat
/api/exec
No dependencies set.
The note is not visible to the blocked user.
Parent
Ref: #5
Depends on: #6, #7, #8, #9, #10, #11
Objective
Create Gitea Actions workflow that spawns a Docker test pod, runs all Playwright E2E tests, and reports results.
Tasks
.gitea/workflows/e2e-test.ymlDockerfiledocker-composeor inline Docker commands:curl http://localhost:3000)pnpm test:e2einside test container withBASE_URL=http://app:3000test-results/results.json— machine-readabletest-results/results.xml— JUnit for CI integrationplaywright-report/— HTML reportWorkflow Skeleton
Considerations
nodeimage — needs Docker-in-Docker or sidecar.build-push.ymlruns on same runner — avoid resource conflicts.NEXT_PUBLIC_COMMIT_SHAenv var needed for build./api/chat,/api/exec) need mocking or env vars to skip real backends.Acceptance