name: CI on: push: branches: [main] pull_request: branches: [main] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: '1.23' - name: Build run: go build ./... - name: Test run: go test ./... integration: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: '1.23' - name: Install NATS Server run: | # Download and install nats-server curl -L https://github.com/nats-io/nats-server/releases/download/v2.10.24/nats-server-v2.10.24-linux-amd64.tar.gz -o nats-server.tar.gz tar -xzf nats-server.tar.gz sudo mv nats-server-v2.10.24-linux-amd64/nats-server /usr/local/bin/ nats-server --version - name: Start NATS with JetStream run: | nats-server -js -p 4222 & # Wait for NATS to be ready sleep 3 # Verify NATS is running curl -s http://localhost:8222/healthz || echo "Health check not available, but NATS may still be running" - name: Run Integration Tests run: go test -tags=integration -v ./...