name: build on: push: pull_request: jobs: backend: runs-on: ubuntu-24.04 defaults: run: working-directory: backend steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: '1.23.8' - run: go mod download - run: go build ./... - run: go test ./... node-agent: runs-on: ubuntu-24.04 defaults: run: working-directory: agents/rap-node-agent steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: '1.23.8' - run: go mod download - run: go test ./... - name: Anti-flake check (vpnruntime) run: go test ./internal/vpnruntime -count=20 - name: Targeted anti-flake (parallel flow window) run: go test ./internal/vpnruntime -run TestFabricClientPacketIngressParallelFlowWindowDoesNotBlockIndependentChannel -count=50 -timeout=60s - name: Concurrency check (vpnruntime race) run: go test -race ./internal/vpnruntime - name: One-shot vpnruntime guard script run: pwsh -NoProfile -ExecutionPolicy Bypass -File scripts/smoke/run-vpnruntime-ci-guards.ps1 -AntiFlakeCount 20 -TargetedCount 50 worker: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - name: Build worker image run: docker build --tag rap-rdp-worker:ci --file workers/rdp-worker/Dockerfile workers/rdp-worker - name: Verify worker binary path run: docker run --rm --entrypoint /bin/sh rap-rdp-worker:ci -lc "test -x /usr/local/bin/rdp-worker && test -x /usr/local/bin/rdp-worker-dataplane-token-probe && test -x /usr/local/bin/rdp-worker-dataplane-bind-probe"