empty #6
Workflow file for this run
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: CI | |
| on: | |
| push: | |
| branches: [main, master] | |
| pull_request: | |
| branches: [main, master] | |
| merge_group: | |
| types: [checks_requested] | |
| workflow_dispatch: | |
| inputs: | |
| run_integration: | |
| description: 'Run integration tests' | |
| type: boolean | |
| default: true | |
| spec: | |
| description: 'Specific spec to test (e.g., 3.0/misc/stripe.com.yml)' | |
| type: string | |
| required: false | |
| max_concurrency: | |
| description: 'Max concurrency for integration tests' | |
| type: number | |
| default: 50 | |
| jobs: | |
| build-ci: | |
| name: Build CI | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out source code | |
| uses: actions/checkout@v4 | |
| - name: Set up Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: "1.25.3" | |
| cache: true | |
| - name: Install gosec | |
| run: go install github.com/securego/gosec/v2/cmd/gosec@latest | |
| - name: Download Go modules | |
| run: go mod download | |
| - name: Run build-ci | |
| run: make build-ci | |
| timeout-minutes: 30 | |
| test-ci: | |
| name: Test CI | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out source code | |
| uses: actions/checkout@v4 | |
| - name: Set up Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: "1.25.3" | |
| cache: true | |
| - name: Download Go modules | |
| run: go mod download | |
| - name: Run generate and check for uncommitted changes | |
| run: | | |
| make generate | |
| if ! git diff --exit-code; then | |
| echo "ERROR: make generate produced uncommitted changes" | |
| echo "Please run 'make generate' locally and commit the changes" | |
| exit 1 | |
| fi | |
| - name: Run test-ci | |
| run: make test-ci | |
| integration-tests: | |
| name: Integration Tests | |
| runs-on: ubuntu-latest | |
| # Run on: merge_group (merge queue), push to main, or manual trigger with run_integration=true | |
| if: github.event_name == 'merge_group' || github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && inputs.run_integration) | |
| steps: | |
| - name: Check out source code | |
| uses: actions/checkout@v4 | |
| - name: Set up Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: "1.25.3" | |
| cache: true | |
| - name: Download Go modules | |
| run: go mod download | |
| - name: Fetch specs | |
| run: make fetch-specs | |
| - name: Run integration tests | |
| run: | | |
| if [ -n "${{ inputs.spec }}" ]; then | |
| make test-integration SPEC="${{ inputs.spec }}" | |
| else | |
| INTEGRATION_MAX_CONCURRENCY=${{ inputs.max_concurrency }} go test -v -tags=integration -count=1 -timeout=60m . | |
| fi | |
| timeout-minutes: 65 |