Skip to content

empty

empty #6

Workflow file for this run

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