diff --git a/.github/workflows/linters.yaml b/.github/workflows/linters.yaml new file mode 100644 index 0000000..e7aad32 --- /dev/null +++ b/.github/workflows/linters.yaml @@ -0,0 +1,30 @@ +name: linters + +on: + push: + branches: [main] + pull_request: + branches: ["**"] + +permissions: + contents: read + +jobs: + golangci-lint: + name: golangci-lint + runs-on: ubuntu-latest + steps: + - uses: actions/setup-go@v4 + with: + go-version: "1.20" + cache: false + - name: Checkout the code + uses: actions/checkout@v3.2.0 + - name: Vendor packages + run: | + go mod vendor + - name: golangci-lint + uses: golangci/golangci-lint-action@v3 + with: + version: v1.53 + skip-cache: true diff --git a/.golangci.yaml b/.golangci.yaml new file mode 100644 index 0000000..56f5332 --- /dev/null +++ b/.golangci.yaml @@ -0,0 +1,30 @@ +run: + timeout: 20m + issue-exit-code: 0 # we will change this later + tests: true + skip-dirs-use-default: true + modules-download-mode: readonly + +issues: + max-issues-per-linter: 0 + max-same-issues: 0 + new: false + +output: + print-linter-name: true + sort-results: true + uniq-by-line: false + print-issued-lines: true + +linters: + disable-all: true + fast: false + enable: + # A stricter replacement for gofmt. + - gofumpt + # Inspects source code for security problems. + - gosec + # Check for correctness of programs. + - govet + # Drop-in replacement of golint. + - revive