Skip to content

Commit

Permalink
RHOAIENG-8554: Add static-checks GitHub action for go code
Browse files Browse the repository at this point in the history
  • Loading branch information
jiridanek committed Jun 14, 2024
1 parent 8a6c824 commit 23cd716
Show file tree
Hide file tree
Showing 4 changed files with 162 additions and 1 deletion.
71 changes: 71 additions & 0 deletions .github/workflows/code-quality.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
---
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:
check-latest: true
go-version-file: components/notebook-controller/go.mod
cache-dependency-path: ${{ matrix.component }}/go.sum

- name: golangci-lint
if: "${{ !cancelled() }}"
uses: golangci/golangci-lint-action@v6
with:
version: v1.59.1
only-new-issues: true
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 }}
2 changes: 1 addition & 1 deletion .github/workflows/notebook_controller_unit_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
uses: actions/setup-go@v5
with:
check-latest: true
go-version-file: components/notebook-controller/go.mod
go-version-file: components/notebook-controller/go.mod``
cache-dependency-path: components/notebook-controller/go.sum

- name: Run unit tests
Expand Down
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 23cd716

Please sign in to comment.