name: Go on: push: branches: [ "main" ] pull_request: branches: [ "main" ] jobs: test: strategy: matrix: os: [macos-latest, ubuntu-latest, windows-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 with: lfs: 'true' - name: Set up uses: actions/setup-go@v4 with: go-version: stable - name: Format run: gofmt -s -w . && git diff --exit-code if: matrix.os != 'windows-latest' - name: Tidy run: go mod tidy && git diff --exit-code - name: Download run: go mod download - name: Verify run: go mod verify - name: Vet run: go vet ./... continue-on-error: true - name: Build run: go build -v ./... - name: Test run: go test -v ./... - name: Test data races run: go test -v -race ./... if: matrix.os == 'ubuntu-latest' - name: Test BSD locks run: go test -v -tags sqlite3_bsd ./... if: matrix.os == 'macos-latest' - name: Coverage report uses: ncruces/go-coverage-report@v0 with: chart: 'true' amend: 'true' if: | matrix.os == 'ubuntu-latest' && github.event_name == 'push' continue-on-error: true