E2E #111
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 | |
| on: | |
| workflow_run: | |
| workflows: ["CI"] | |
| types: [completed] | |
| jobs: | |
| e2e-fast: | |
| name: "E2E (fast tier)" | |
| runs-on: ubuntu-latest | |
| if: ${{ github.event.workflow_run.conclusion == 'success' }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ github.event.workflow_run.head_sha }} | |
| repository: ${{ github.event.workflow_run.head_repository.full_name }} | |
| - name: Set up Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: "1.26" | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Build Docker image | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| load: true | |
| tags: fuse-app:test | |
| cache-from: type=gha | |
| cache-to: type=gha,mode=max | |
| - name: Start infrastructure | |
| run: docker compose --profile e2e up -d --wait --wait-timeout 120 | |
| - name: Health check | |
| run: curl -sf --retry 10 --retry-delay 3 --retry-connrefused http://localhost:9091/health | |
| - name: Run E2E fast tests | |
| run: go test -tags=e2e ./tests/e2e -v -count=1 -timeout 10m | |
| env: | |
| E2E_API_URL: http://localhost:9091 | |
| - name: Dump container logs on failure | |
| if: failure() | |
| run: docker compose --profile e2e logs --tail=200 | |
| - name: Cleanup | |
| if: always() | |
| run: docker compose --profile e2e down -v | |
| e2e-slow: | |
| name: "E2E (slow tier)" | |
| runs-on: ubuntu-latest | |
| if: >- | |
| github.event.workflow_run.conclusion == 'success' && | |
| github.event.workflow_run.head_branch == 'main' | |
| needs: e2e-fast | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ github.event.workflow_run.head_sha }} | |
| repository: ${{ github.event.workflow_run.head_repository.full_name }} | |
| - name: Set up Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: "1.26" | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Build Docker image | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| load: true | |
| tags: fuse-app:test | |
| cache-from: type=gha | |
| cache-to: type=gha,mode=max | |
| - name: Start infrastructure | |
| run: docker compose --profile e2e up -d --wait --wait-timeout 120 | |
| - name: Health check | |
| run: curl -sf --retry 10 --retry-delay 3 --retry-connrefused http://localhost:9091/health | |
| - name: Run E2E slow tests | |
| run: go test -tags="e2e e2e_slow" ./tests/e2e -v -count=1 -timeout 15m | |
| env: | |
| E2E_API_URL: http://localhost:9091 | |
| - name: Dump container logs on failure | |
| if: failure() | |
| run: docker compose --profile e2e logs --tail=1000 | |
| - name: Cleanup | |
| if: always() | |
| run: docker compose --profile e2e down -v |