From bd074d2dbc44e90f261596297461413393775ee0 Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Mon, 26 Sep 2022 08:07:45 +0200 Subject: [PATCH] ci: add separate sets of hard- and soft-enforced linters --- .github/workflows/lint-soft.yml | 28 ++++++++++++++++++++ .github/workflows/lint.yml | 22 ++++++++++----- .golangci-soft.yml | 47 +++++++++++++++++++++++++++++++++ .golangci.yml | 11 +++----- 4 files changed, 94 insertions(+), 14 deletions(-) create mode 100644 .github/workflows/lint-soft.yml create mode 100644 .golangci-soft.yml diff --git a/.github/workflows/lint-soft.yml b/.github/workflows/lint-soft.yml new file mode 100644 index 0000000..77348b9 --- /dev/null +++ b/.github/workflows/lint-soft.yml @@ -0,0 +1,28 @@ +name: lint-soft +on: + push: + pull_request: + +permissions: + contents: read + # Optional: allow read access to pull request. Use with `only-new-issues` option. + pull-requests: read + +jobs: + golangci: + name: lint-soft + runs-on: ubuntu-latest + steps: + - name: Install Go + uses: actions/setup-go@v3 + with: + go-version: ^1 + + - uses: actions/checkout@v3 + - name: golangci-lint + uses: golangci/golangci-lint-action@v3 + with: + # Optional: golangci-lint command line arguments. + args: --config .golangci-soft.yml --issues-exit-code=0 + # Optional: show only new issues if it's a pull request. The default value is `false`. + only-new-issues: true diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 8f5e197..1129ece 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,18 +1,28 @@ name: lint -on: [push, pull_request] +on: + push: + pull_request: + +permissions: + contents: read + # Optional: allow read access to pull request. Use with `only-new-issues` option. + pull-requests: read jobs: golangci: name: lint runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - name: Install Go + uses: actions/setup-go@v3 + with: + go-version: ^1 + + - uses: actions/checkout@v3 - name: golangci-lint - uses: golangci/golangci-lint-action@v2 + uses: golangci/golangci-lint-action@v3 with: # Optional: golangci-lint command line arguments. - args: --issues-exit-code=0 - # Optional: working directory, useful for monorepos - # working-directory: somedir + #args: # Optional: show only new issues if it's a pull request. The default value is `false`. only-new-issues: true diff --git a/.golangci-soft.yml b/.golangci-soft.yml new file mode 100644 index 0000000..ef456e0 --- /dev/null +++ b/.golangci-soft.yml @@ -0,0 +1,47 @@ +run: + tests: false + +issues: + include: + - EXC0001 + - EXC0005 + - EXC0011 + - EXC0012 + - EXC0013 + + max-issues-per-linter: 0 + max-same-issues: 0 + +linters: + enable: + # - dupl + - exhaustive + # - exhaustivestruct + - goconst + - godot + - godox + - gomnd + - gomoddirectives + - goprintffuncname + - ifshort + # - lll + - misspell + - nakedret + - nestif + - noctx + - nolintlint + - prealloc + - wrapcheck + + # disable default linters, they are already enabled in .golangci.yml + disable: + - deadcode + - errcheck + - gosimple + - govet + - ineffassign + - staticcheck + - structcheck + - typecheck + - unused + - varcheck diff --git a/.golangci.yml b/.golangci.yml index 85cfb6d..a5a91d0 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -15,20 +15,15 @@ issues: linters: enable: - bodyclose - - dupl - exportloopref - - goconst - - godot - - godox - goimports - - goprintffuncname - gosec - - ifshort - - misspell - - prealloc + - nilerr + - predeclared - revive - rowserrcheck - sqlclosecheck + - tparallel - unconvert - unparam - whitespace