Skip to content

E2E

E2E #111

Workflow file for this run

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