From c4a61aa918dff3ab256c70551aa55560ac2d93e1 Mon Sep 17 00:00:00 2001 From: Kir Kolyshkin Date: Tue, 30 Nov 2021 16:42:07 -0800 Subject: [PATCH] ci: enable extra linters for new code This adds a new GHA CI job which runs a few extra linters. This is only done for pull requests, and should only warn about new code. The justification is simple: we want more linters, but since this is not a new project, adding a new linter meaning we have to fix all the existing warnings. In some cases having all the warnings fixed is difficult and takes time, plus it is usually a low priority task. Therefore, we are stuck with inability to add new linters because we can't fix all their warnings. Meanwhile, new pull requests add more code which is not linted. This is an attempt to break this vicious cycle. Let's enable godot and revive for now and see how it is going. Signed-off-by: Kir Kolyshkin --- .github/workflows/validate.yml | 20 ++++++++++++++++++++ .golangci-extra.yml | 15 +++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 .golangci-extra.yml diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 80a14db74..7194c645e 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -23,6 +23,26 @@ jobs: # must be specified without patch version version: v1.42 + lint-extra: + # Extra linters, only checking new code from pull requests. + if: github.event_name == 'pull_request' + runs-on: ubuntu-20.04 + permissions: + contents: read + steps: + - uses: actions/checkout@v2 + - name: install deps + run: | + sudo apt -q update + sudo apt -q install libseccomp-dev + - uses: golangci/golangci-lint-action@v2 + with: + only-new-issues: true + args: --config .golangci-extra.yml + # must be specified without patch version + version: v1.43 + + compile-buildtags: runs-on: ubuntu-20.04 env: diff --git a/.golangci-extra.yml b/.golangci-extra.yml new file mode 100644 index 000000000..1c160e6a6 --- /dev/null +++ b/.golangci-extra.yml @@ -0,0 +1,15 @@ +# This is golangci-lint config file which is used to check new code in +# github PRs only (see lint-extra job in .github/workflows/validate.yml). +# +# For the default linter config, see .golangci.yml. This config should +# only enable additional linters not enabled in the default config. + +run: + build-tags: + - seccomp + +linters: + disable-all: true + enable: + - godot + - revive