name: general permissions: {} on: pull_request jobs: build: name: Go Basic Checks runs-on: ubuntu-latest steps: - name: Check out code into the Go module directory uses: actions/checkout@v6 - name: Set up Go uses: actions/setup-go@v6 with: go-version: 'stable' id: go - name: Verify all files pass gofmt formatting run: if [ "$(gofmt -s -l . | wc -l)" -gt 0 ]; then gofmt -s -d .; exit 1; fi - name: Get dependencies run: | go get -v -t -d ./... - name: Test run: go test -coverprofile profile.txt -race -v -timeout 30s -tags=github ./... - name: Install govulncheck run: go install golang.org/x/vuln/cmd/govulncheck@latest shell: bash - name: Run govulncheck run: govulncheck ./... shell: bash verify-build: name: Verify Build Targets needs: build runs-on: ubuntu-latest strategy: matrix: os: [darwin, freebsd, linux] arch: [amd64, arm64] steps: - name: Check out code uses: actions/checkout@v6 - name: Set up Go uses: actions/setup-go@v6 with: go-version: 'stable' - name: Build for ${{ matrix.os }}/${{ matrix.arch }} run: | GOOS=${{ matrix.os }} GOARCH=${{ matrix.arch }} go build -o versitygw-${{ matrix.os }}-${{ matrix.arch }} cmd/versitygw/*.go