Docker E2E #40
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: Docker E2E | |
| # Runs the docker-dependent end-to-end suite gated behind the | |
| # `dockere2e` build tag (test/e2e/docker/* and test/e2e/e2e_test.go). | |
| # These tests boot real docker compose stacks, assert on real OS state | |
| # (port allocation, volume persistence, HTTP responses), and take | |
| # 1-3 minutes each — too slow for the PR-blocking CI job. | |
| # | |
| # Triggers: | |
| # - schedule: nightly at 06:00 UTC | |
| # - workflow_dispatch: manual run from the Actions UI | |
| # - pull_request labeled with "needs:docker-tests" — opt-in per PR | |
| # | |
| # This workflow is *not* required for PR merge. The PR-blocking | |
| # checks live in ci.yml. If a regression slips through here, the | |
| # nightly run catches it; the maintainer is expected to triage. | |
| # | |
| # Security note: the only ${{ }} substitutions used here are | |
| # github.event_name (enum) and github.event.label.name (compared to | |
| # a literal in an if:, never interpolated into a shell command). No | |
| # command-injection surface. | |
| on: | |
| schedule: | |
| - cron: '0 6 * * *' # 06:00 UTC daily | |
| workflow_dispatch: | |
| pull_request: | |
| types: [ labeled ] | |
| jobs: | |
| dockere2e: | |
| name: Docker E2E | |
| # Skip the labeled-PR trigger unless the label actually matches. | |
| # workflow_dispatch and schedule events have no label, so they | |
| # always pass this guard. | |
| if: github.event_name != 'pull_request' || github.event.label.name == 'needs:docker-tests' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| - name: Set up Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: go.mod | |
| - name: Cache Go Modules | |
| uses: actions/cache@v5 | |
| with: | |
| path: | | |
| ~/go/pkg/mod | |
| ~/.cache/go-build | |
| key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
| restore-keys: | | |
| ${{ runner.os }}-go- | |
| - name: Verify docker is available | |
| run: | | |
| docker version | |
| docker compose version | |
| - name: Run docker e2e tests | |
| run: go test -tags dockere2e -timeout 20m ./test/e2e/... |