feat: add golangci lint

Signed-off-by: gfanton <8671905+gfanton@users.noreply.github.com>
This commit is contained in:
gfanton 2022-11-08 16:53:43 +01:00
parent 9eac124763
commit d1e00a6a49
2 changed files with 141 additions and 0 deletions

112
.github/workflows/go.yml vendored Normal file
View File

@ -0,0 +1,112 @@
name: Go
on:
push:
tags:
- v*
branches:
- master
pull_request:
jobs:
golangci-lint:
name: "GolangCI-lint"
runs-on: ubuntu-latest
strategy:
matrix:
golang:
- 1.18.x
steps:
- uses: actions/checkout@v3
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.golang }}
- name: golangci-lint
uses: golangci/golangci-lint-action@v3.3.0
with:
go-version: ${{ matrix.golang }}
version: v1.50.1
args: --timeout=10m
go-tests-on-linux:
runs-on: ubuntu-latest
strategy:
matrix:
golang:
- 1.18
- 1.19
env:
OS: ubuntu-latest
GOLANG: ${{ matrix.golang }}
steps:
- name: Checkout
uses: actions/checkout@master
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.golang }}
- name: Cache Go modules
uses: actions/cache@v1
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{matrix.golang}}-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-${{matrix.golang}}-
- name: Download modules
run: go mod download
- name: Check go.mod and go.sum
run: |
go mod tidy -v
git --no-pager diff go.mod go.sum
git --no-pager diff --quiet go.mod go.sum
- name: Run tests with race, without goleak
run: go test -race -covermode=atomic -coverpkg=all -coverprofile=coverage.txt -cover -v ./... -test.timeout=10m
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
with:
file: ./coverage.txt
flags: unittests
env_vars: OS,GOLANG
name: codecov-umbrella
fail_ci_if_error: false
go-tests-on-macos:
runs-on: macos-latest
strategy:
matrix:
golang:
- 1.18
- 1.19
env:
OS: macos-latest
GOLANG: ${{ matrix.golang }}
steps:
- name: Checkout
uses: actions/checkout@master
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.golang }}
- name: Cache Go modules
uses: actions/cache@v1
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-${{matrix.golang}}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-${{matrix.golang}}-go-
- name: Download modules
run: go mod download
- name: Check go.mod and go.sum
run: |
go mod tidy -v
git --no-pager diff go.mod go.sum
git --no-pager diff --quiet go.mod go.sum
- name: Run tests with race, without goleak
run: go test -race -covermode=atomic -coverpkg=all -coverprofile=coverage.txt -cover -v ./... -test.timeout=10m
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
with:
file: ./coverage.txt
flags: unittests
env_vars: OS,GOLANG
name: codecov-umbrella
fail_ci_if_error: false

29
.golangci.yml Normal file
View File

@ -0,0 +1,29 @@
run:
deadline: 1m
tests: true
linters-settings:
golint:
min-confidence: 0
maligned:
suggest-new: true
goconst:
min-len: 5
min-occurrences: 4
misspell:
locale: US
linters:
disable-all: false
enable:
- goconst
- misspell
- misspell
- errcheck
- unused
- staticcheck
- unconvert
- gofmt
- goimports
- revive
- ineffassign