name: E2E Tests on: push: branches: [main] paths: - 'mothership/**' - 'tests/**' - '.github/workflows/e2e.yml' pull_request: branches: [main] paths: - 'mothership/**' - 'tests/**' - '.github/workflows/e2e.yml' workflow_dispatch: jobs: e2e: name: End-to-End Integration Tests runs-on: ubuntu-latest timeout-minutes: 15 steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version: '1.25' cache-dependency-path: mothership/go.sum - name: Build mothership working-directory: mothership run: go build -v ./cmd/mothership - name: Build simulator working-directory: mothership run: go build -v -o /tmp/spaxel-sim ./cmd/sim - name: Run e2e tests working-directory: mothership run: go test -v -timeout 90s ./tests/e2e/... docker-e2e: name: Docker E2E Tests runs-on: ubuntu-latest timeout-minutes: 15 steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version: '1.25' cache-dependency-path: mothership/go.sum - name: Build Docker image run: | docker build -t spaxel-e2e:test . - name: Build simulator working-directory: mothership run: go build -v -o /tmp/spaxel-sim ./cmd/sim - name: Run shell-based e2e test with Docker env: MOTHERSHIP_IMAGE: spaxel-e2e:test run: | chmod +x tests/e2e/run.sh cd mothership ../tests/e2e/run.sh