Skip to content

Reduce repetition in CI configuration #10

Reduce repetition in CI configuration

Reduce repetition in CI configuration #10

Workflow file for this run

name: Test
on:
push:
branches: [ main ]
pull_request:
jobs:
# Run unit tests and vet in parallel as separate jobs
test-unit:
name: Unit Tests
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Go environment
uses: ./.github/actions/setup-go
- name: Run unit tests
run: make test-unit
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: unit-test-results
path: |
cover.out
bin/
retention-days: 7
vet:
name: Go Vet
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Go environment
uses: ./.github/actions/setup-go
- name: Run vet
run: make vet
# Integration tests need special setup, keep separate
test-integration:
name: Integration
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: 'go.mod'
check-latest: true
cache: true
- name: Install dependencies
run: |
# Download Go dependencies
go mod download
# Install Temporal CLI
curl -sSf https://temporal.download/cli.sh | sh
echo "$HOME/.temporalio/bin" >> "$GITHUB_PATH"
# Install Go tools
go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.16.2
go install sigs.k8s.io/controller-runtime/tools/setup-envtest@latest
- name: Install kubectl
uses: azure/setup-kubectl@v3
with:
version: 'latest'
- name: Install Helm
uses: azure/setup-helm@v3
with:
version: 'v3.14.3'
- name: Integration tests
run: make test-integration
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: integration-test-results
path: |
cover.out
bin/
retention-days: 7