chore(claude): isolate worktrees with per-stack docker-compose #11647
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: 🧪 E2E Tests | |
| on: | |
| push: | |
| workflow_dispatch: | |
| concurrency: | |
| group: e2e-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| e2e: | |
| name: "Test e2e" | |
| runs-on: ubuntu-latest | |
| env: | |
| DATABASE_URL: postgresql://postgres:postgres@localhost:5438/egapro | |
| AUTH_SECRET: ${{ secrets.AUTH_SECRET }} | |
| NEXTAUTH_URL: http://localhost:3000/api/auth | |
| EGAPRO_PROCONNECT_CLIENT_ID: ${{ secrets.EGAPRO_PROCONNECT_CLIENT_ID }} | |
| EGAPRO_PROCONNECT_CLIENT_SECRET: ${{ secrets.EGAPRO_PROCONNECT_CLIENT_SECRET }} | |
| EGAPRO_PROCONNECT_ISSUER: ${{ secrets.EGAPRO_PROCONNECT_ISSUER }} | |
| EGAPRO_WEEZ_API_URL: ${{ secrets.EGAPRO_WEEZ_API_URL }} | |
| EGAPRO_SUIT_API_URL: ${{ secrets.EGAPRO_SUIT_API_URL }} | |
| # Deterministic dev value matching the E2E test's hardcoded key. | |
| # The real secret is only needed in deployed environments. | |
| EGAPRO_SUIT_API_KEY: dev-suit-api-key-minimum-32-chars-long | |
| S3_ENDPOINT: http://localhost:9000 | |
| S3_REGION: us-east-1 | |
| S3_ACCESS_KEY_ID: minioadmin | |
| S3_SECRET_ACCESS_KEY: minioadmin | |
| S3_BUCKET_NAME: egapro-dev-app | |
| CLAMAV_HOST: localhost | |
| CLAMAV_PORT: 3310 | |
| ADMIN_EMAILS: test@fia1.fr | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Start services | |
| run: docker compose up -d | |
| - uses: pnpm/action-setup@v4 | |
| - name: Set up Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version-file: ".nvmrc" | |
| cache: pnpm | |
| - name: Restore CI build cache | |
| id: cache | |
| uses: actions/cache/restore@v4 | |
| with: | |
| path: ./* | |
| key: "${{ github.sha }}" | |
| - name: Install dependencies | |
| if: steps.cache.outputs.cache-hit != 'true' | |
| run: pnpm install --frozen-lockfile | |
| - name: Build | |
| if: steps.cache.outputs.cache-hit != 'true' | |
| run: pnpm build | |
| - name: Apply database schema | |
| run: pnpm db:push | |
| - name: Install Playwright browsers | |
| run: pnpm playwright:install | |
| - name: Run E2E tests | |
| run: pnpm test:e2e | |
| - name: Stop services | |
| if: always() | |
| run: docker compose down | |
| - name: Upload Playwright report | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: playwright-report | |
| path: packages/app/playwright-report/ | |
| retention-days: 7 |