name: Go on: push: branches: [ main ] pull_request: branches: [ main ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v4 with: go-version-file: 'go.work' - name: Setup Task uses: arduino/setup-task@v1 - name: Build run: go build -v ./... - name: Vet run: go vet ./... - name: Test (race + coverage) run: go test -race -coverprofile=coverage.out -covermode=atomic ./... - name: Fuzz (10s) run: go test -run=Fuzz -fuzz=Fuzz -fuzztime=10s ./pkg/trix - name: Upload coverage reports to Codecov uses: codecov/codecov-action@v5 with: token: ${{ secrets.CODECOV_TOKEN }} - name: Upload coverage report uses: actions/upload-artifact@v4 with: name: coverage-report path: coverage.out