Skip to content

Commit

Permalink
Add golang-ci and other linters
Browse files Browse the repository at this point in the history
  • Loading branch information
jiridanek committed Jun 14, 2024
1 parent b15e877 commit 5153356
Show file tree
Hide file tree
Showing 3 changed files with 159 additions and 0 deletions.
69 changes: 69 additions & 0 deletions .github/workflows/code-quality.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
---
name: Code static analysis
"on":
push:
pull_request:
workflow_dispatch:

permissions:
contents: read
pull-requests: read

jobs:
golangci:
name: golangci-lint
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
component:
- components/notebook-controller
- components/odh-notebook-controller

steps:
- uses: actions/checkout@v4

- uses: actions/setup-go@v5
with:
go-version: stable
cache-dependency-path: ${{ matrix.component }}/go.sum

- name: golangci-lint (components/notebook-controller)
if: "${{ !cancelled() }}"
uses: golangci/golangci-lint-action@v6
with:
version: v1.58
working-directory: ${{ matrix.component }}

# additional checks not part of golangci-lint

# https://github.com/golangci/golangci-lint/issues/4123
- name: go mod verify
if: "${{ !cancelled() }}"
run: go mod verify
working-directory: ${{ matrix.component }}

# https://github.com/golang/go/issues/27005
- name: go mod tidy -diff
if: "${{ !cancelled() }}"
run: |
set -x
go mod tidy
# if the above changed any files, report the differences and fail the step
if [[ $(git ls-files . -d -m -o --exclude-standard --full-name -v | wc -l) -gt 0 ]]; then
echo "There are changes:"
git diff
exit 1
fi
working-directory: ${{ matrix.component }}

# https://github.com/golangci/golangci-lint/issues/3094
- name: govulncheck
if: "${{ !cancelled() }}"
run: |
# https://go.googlesource.com/vuln
go install golang.org/x/vuln/cmd/govulncheck@latest
govulncheck ./...
working-directory: ${{ matrix.component }}
45 changes: 45 additions & 0 deletions components/notebook-controller/.golang-ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# https://github.com/golangci/golangci-lint

# Newer Kubebuilder adds this as a default
# https://github.com/kubernetes-sigs/kubebuilder/issues/1887

run:
timeout: 5m
allow-parallel-runners: true

issues:
# don't skip warning about doc comments
# don't exclude the default set of lint
exclude-use-default: false
# restore some of the defaults
# (fill in the rest as needed)
exclude-rules:
- path: "api/*"
linters:
- lll
- path: "internal/*"
linters:
- dupl
- lll
linters:
disable-all: true
enable:
- dupl
- errcheck
- exportloopref
- goconst
- gocyclo
- gofmt
- goimports
- gosimple
- govet
- ineffassign
- lll
- misspell
- nakedret
- prealloc
- staticcheck
- typecheck
- unconvert
- unparam
- unused
45 changes: 45 additions & 0 deletions components/odh-notebook-controller/.golang-ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# https://github.com/golangci/golangci-lint

# Newer Kubebuilder adds this as a default
# https://github.com/kubernetes-sigs/kubebuilder/issues/1887

run:
timeout: 5m
allow-parallel-runners: true

issues:
# don't skip warning about doc comments
# don't exclude the default set of lint
exclude-use-default: false
# restore some of the defaults
# (fill in the rest as needed)
exclude-rules:
- path: "api/*"
linters:
- lll
- path: "internal/*"
linters:
- dupl
- lll
linters:
disable-all: true
enable:
- dupl
- errcheck
- exportloopref
- goconst
- gocyclo
- gofmt
- goimports
- gosimple
- govet
- ineffassign
- lll
- misspell
- nakedret
- prealloc
- staticcheck
- typecheck
- unconvert
- unparam
- unused

0 comments on commit 5153356

Please sign in to comment.