name: Go on: push: branches: - main pull_request: permissions: contents: read pull-requests: read jobs: build: name: Build runs-on: ubuntu-latest steps: - name: Set up Go uses: actions/setup-go@v3 with: go-version: '^1.18' id: go - name: Check out code into the Go module directory uses: actions/checkout@v3 with: lfs: true - name: Install gotestsum run: go install gotest.tools/gotestsum@latest - name: Create out directory run: mkdir -p ./out - name: Run tests run: gotestsum -- -coverprofile=out/cover.txt -shuffle=on -race -covermode=atomic ./... - name: golangci-lint uses: golangci/golangci-lint-action@v3 with: # Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version version: latest # Optional: working directory, useful for monorepos # working-directory: somedir # Optional: golangci-lint command line arguments. # args: --issues-exit-code=0 # Optional: show only new issues if it's a pull request. The default value is `false`. # only-new-issues: true # Optional: if set to true then the action will use pre-installed Go. # skip-go-installation: true # Optional: if set to true then the action don't cache or restore ~/go/pkg. # skip-pkg-cache: true # Optional: if set to true then the action don't cache or restore ~/.cache/go-build. # skip-build-cache: true - name: Run GoReleaser uses: goreleaser/goreleaser-action@v2 with: version: latest args: release --rm-dist env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}