proxy-pool/.github/workflows/ci.yml
2026-08-07 17:34:25 +08:00

81 lines
2.0 KiB
YAML

name: ci
on:
push:
pull_request:
permissions:
contents: read
jobs:
proto:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
- shell: pwsh
run: ./scripts/verify-proto.ps1
deployment:
runs-on: ubuntu-latest
env:
PROXY_POOL_GATEWAY_PASSWORD: ci-gateway-password
PROXY_POOL_EXTRACT_TOKEN: ci-extract-token
PROXY_POOL_ADMIN_TOKEN: ci-admin-token
PROXY_POOL_CONFIG_FINGERPRINT_KEY: ci-config-fingerprint-key-at-least-32-bytes
PROVIDER_A_TOKEN: ci-provider-a-token
PROVIDER_B_TOKEN: ci-provider-b-token
steps:
- uses: actions/checkout@v4
- name: Render Compose configuration
run: docker compose -f deploy/docker-compose.yml config --quiet
- name: Render Kubernetes base
run: kubectl kustomize deploy/kubernetes/base > /dev/null
test:
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
- run: go vet ./...
- run: go test -timeout 60s ./...
- run: go build ./...
race:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
- run: go test -race -timeout 60s ./internal/...
integration:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
- name: Redis activity contract
shell: pwsh
run: ./scripts/test-redis.ps1
- name: PostgreSQL admin-state contract
shell: pwsh
run: ./scripts/test-postgres.ps1
- name: Controller dual-store bootstrap
shell: pwsh
run: ./scripts/test-controller.ps1