chore: add github action, Makefile
parent
90e43ed163
commit
e3fd917ba7
|
@ -0,0 +1,6 @@
|
||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: "gomod"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "daily"
|
|
@ -0,0 +1,51 @@
|
||||||
|
name: Go
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
name: Test
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: actions/setup-go@v3
|
||||||
|
with:
|
||||||
|
go-version: "1.19"
|
||||||
|
check-latest: true
|
||||||
|
cache: true
|
||||||
|
- run: go test -race -failfast ./...
|
||||||
|
build:
|
||||||
|
name: Build
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: actions/setup-go@v3
|
||||||
|
with:
|
||||||
|
go-version: "1.19"
|
||||||
|
check-latest: true
|
||||||
|
cache: true
|
||||||
|
- run: go build ./cmd/gofimports
|
||||||
|
golangci-lint:
|
||||||
|
name: golangci-lint
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
- uses: actions/setup-go@v3
|
||||||
|
with:
|
||||||
|
go-version: "1.19"
|
||||||
|
check-latest: true
|
||||||
|
cache: true
|
||||||
|
- uses: golangci/golangci-lint-action@v3
|
||||||
|
with:
|
||||||
|
version: latest
|
|
@ -0,0 +1,29 @@
|
||||||
|
name: goreleaser
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- "*"
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
goreleaser:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
- uses: actions/setup-go@v3
|
||||||
|
with:
|
||||||
|
go-version: "1.19"
|
||||||
|
check-latest: true
|
||||||
|
cache: true
|
||||||
|
- uses: goreleaser/goreleaser-action@v3
|
||||||
|
with:
|
||||||
|
distribution: goreleaser
|
||||||
|
version: latest
|
||||||
|
args: release --rm-dist
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@ -0,0 +1,75 @@
|
||||||
|
run:
|
||||||
|
tests: false
|
||||||
|
skip-dirs:
|
||||||
|
- ".*test.*"
|
||||||
|
- ".*mock.*"
|
||||||
|
- ".*generated.*"
|
||||||
|
- ".*example.*"
|
||||||
|
skip-files:
|
||||||
|
- ".*Mock.*"
|
||||||
|
- ".*_mock.*"
|
||||||
|
- ".*_generated.*"
|
||||||
|
|
||||||
|
output:
|
||||||
|
sort-results: true
|
||||||
|
|
||||||
|
linters:
|
||||||
|
disable-all: true
|
||||||
|
enable:
|
||||||
|
- errcheck
|
||||||
|
- gosimple
|
||||||
|
- govet
|
||||||
|
- ineffassign
|
||||||
|
- staticcheck
|
||||||
|
- typecheck
|
||||||
|
- unused
|
||||||
|
- errchkjson
|
||||||
|
- errname
|
||||||
|
- errorlint
|
||||||
|
- execinquery
|
||||||
|
- gocritic
|
||||||
|
- goerr113
|
||||||
|
- gofumpt
|
||||||
|
- gosec
|
||||||
|
- importas
|
||||||
|
- makezero
|
||||||
|
- nilnil
|
||||||
|
- prealloc
|
||||||
|
- unconvert
|
||||||
|
fast: true
|
||||||
|
|
||||||
|
linters-settings:
|
||||||
|
gosec:
|
||||||
|
excludes:
|
||||||
|
- G101
|
||||||
|
- G112
|
||||||
|
- G402
|
||||||
|
- G404
|
||||||
|
- G501
|
||||||
|
- G505
|
||||||
|
exclude-generated: true
|
||||||
|
govet:
|
||||||
|
check-shadowing: false
|
||||||
|
disable-all: true
|
||||||
|
enable:
|
||||||
|
- assign
|
||||||
|
- atomic
|
||||||
|
- bools
|
||||||
|
- buildtag
|
||||||
|
- composites
|
||||||
|
- copylocks
|
||||||
|
- fieldalignment
|
||||||
|
- httpresponse
|
||||||
|
- loopclosure
|
||||||
|
- lostcancel
|
||||||
|
- nilfunc
|
||||||
|
- printf
|
||||||
|
- unmarshal
|
||||||
|
- unreachable
|
||||||
|
- unusedresult
|
||||||
|
staticcheck:
|
||||||
|
checks: ["all", "-SA1019"]
|
||||||
|
gocritic:
|
||||||
|
enabled-tags:
|
||||||
|
- style
|
||||||
|
- performance
|
|
@ -0,0 +1,21 @@
|
||||||
|
before:
|
||||||
|
hooks:
|
||||||
|
- go mod tidy
|
||||||
|
builds:
|
||||||
|
- main: ./cmd/gofimports
|
||||||
|
goos:
|
||||||
|
- linux
|
||||||
|
- windows
|
||||||
|
- darwin
|
||||||
|
goarch:
|
||||||
|
- amd64
|
||||||
|
- arm64
|
||||||
|
universal_binaries:
|
||||||
|
- replace: true
|
||||||
|
archives:
|
||||||
|
- format_overrides:
|
||||||
|
- goos: windows
|
||||||
|
format: zip
|
||||||
|
changelog:
|
||||||
|
skip: false
|
||||||
|
use: github
|
|
@ -0,0 +1,27 @@
|
||||||
|
.PHONY: all test test-color coverage coverage-cli coverate-html lint format
|
||||||
|
|
||||||
|
all: test-color lint format
|
||||||
|
go mod tidy
|
||||||
|
|
||||||
|
test:
|
||||||
|
go test -race -failfast ./...
|
||||||
|
|
||||||
|
test-color:
|
||||||
|
go install github.com/haunt98/go-test-color@latest
|
||||||
|
go-test-color -race -failfast ./...
|
||||||
|
|
||||||
|
coverage:
|
||||||
|
go test -coverprofile=coverage.out ./...
|
||||||
|
|
||||||
|
coverage-cli: coverage
|
||||||
|
go tool cover -func=coverage.out
|
||||||
|
|
||||||
|
coverage-html: coverage
|
||||||
|
go tool cover -html=coverage.out
|
||||||
|
|
||||||
|
lint:
|
||||||
|
golangci-lint run ./...
|
||||||
|
|
||||||
|
format:
|
||||||
|
go install mvdan.cc/gofumpt@latest
|
||||||
|
gofumpt -l -w -extra .
|
Loading…
Reference in New Issue