name: Check software on: [push] jobs: prepare: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Set up Go uses: actions/setup-go@v3 with: go-version: '^1.21.4' - name: Install dependencies run: go mod tidy - name: Install golangci-lint run: | curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.50.1 - name: Run golangci-lint run: | $(go env GOPATH)/bin/golangci-lint run - name: Build run: go build -v ./... - name: Run tests with race detector run: go test -v -race ./... - name: Run tests and generate coverage report run: go test -v -coverprofile=coverage.out ./... - name: Display coverage run: go tool cover -func=coverage.out - name: Upload coverage report uses: actions/upload-artifact@v3 with: name: coverage-report path: coverage.out