name: CI on: push: branches: [develop, main] pull_request: branches: [develop, main] permissions: contents: read jobs: go: name: Go runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Detect Go module id: detect run: | if [ -f go.mod ]; then echo "has_go=true" >> "$GITHUB_OUTPUT" else echo "has_go=false" >> "$GITHUB_OUTPUT" echo "::notice::No go.mod yet — skipping Go checks until implementation lands." fi - name: Setup Go if: steps.detect.outputs.has_go == 'true' uses: actions/setup-go@v5 with: go-version-file: go.mod cache: true - name: go vet if: steps.detect.outputs.has_go == 'true' run: go vet ./... - name: go test if: steps.detect.outputs.has_go == 'true' run: go test -race -count=1 ./... - name: go build if: steps.detect.outputs.has_go == 'true' run: go build ./...