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
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: Upload coverage report
uses: codecov/codecov-action@v2
files: out/cover.txt
name: kreaper
- name: golangci-lint
uses: golangci/golangci-lint-action@v3
# 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
args: release --rm-dist
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}