-
Notifications
You must be signed in to change notification settings - Fork 57
135 lines (129 loc) · 4.31 KB
/
golangci-lint.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# This document explains why this runs on GitHub over Circle
# https://www.notion.so/kurtosistech/Why-we-have-our-Linter-as-a-Github-Action-572b44c4a9b445009515b7b41d5f74ff
# we use `skip-pkg-cache:true` as we run into https://github.com/golangci/golangci-lint-action/issues/244 if we don't
name: Golang Lint
# We only want one run of this on a branch
# if you push another commit the previous run should cancel
concurrency:
group: "go-linter-${{ github.ref }}"
cancel-in-progress: true
permissions:
contents: read
on:
pull_request:
merge_group:
env:
GOLINT_VERSION: v1.53.3
jobs:
check-if-code-change:
runs-on: ubuntu-latest
outputs:
change: ${{ steps.check.outputs.change }}
steps:
- uses: actions/checkout@v4
with:
go-version: '1.20'
fetch-depth: 0
- run: |
if git --no-pager diff --exit-code origin/main...HEAD -- . ':!docs' ':!*.md'; then
echo "::set-output name=change::false"
else
echo "::set-output name=change::true"
fi
id: check
golangci:
needs: check-if-code-change
if: ${{ needs.check-if-code-change.outputs.change == 'true' }}
name: golang-lint
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v4
with:
go-version: '1.20'
- uses: actions/checkout@v3
# Generate versions
- run: scripts/generate-kurtosis-version.sh
- name: lint-container-engine-lib
uses: golangci/golangci-lint-action@v3
with:
version: ${{ env.GOLINT_VERSION }}
working-directory: container-engine-lib/
args: --timeout=3m
skip-pkg-cache: true
- name: lint-contexts-config-store
uses: golangci/golangci-lint-action@v3
with:
version: ${{ env.GOLINT_VERSION }}
working-directory: contexts-config-store/
args: --timeout=3m
skip-pkg-cache: true
- name: lint-grpc-file-transfer
uses: golangci/golangci-lint-action@v3
with:
version: ${{ env.GOLINT_VERSION }}
working-directory: grpc-file-transfer/golang/
args: --timeout=3m
skip-pkg-cache: true
- name: lint-metrics-library
uses: golangci/golangci-lint-action@v3
with:
version: ${{ env.GOLINT_VERSION }}
working-directory: metrics-library/golang
args: --timeout=3m
skip-pkg-cache: true
- name: lint-name-generator
uses: golangci/golangci-lint-action@v3
with:
version: ${{ env.GOLINT_VERSION }}
working-directory: name_generator/
args: --timeout=3m
skip-pkg-cache: true
- name: lint-api-golang
uses: golangci/golangci-lint-action@v3
with:
version: ${{ env.GOLINT_VERSION }}
working-directory: api/golang/
args: --timeout=3m
skip-pkg-cache: true
- name: lint-core-server
uses: golangci/golangci-lint-action@v3
with:
version: ${{ env.GOLINT_VERSION }}
working-directory: core/server
args: --timeout=3m
skip-pkg-cache: true
- name: lint-core-launcher
uses: golangci/golangci-lint-action@v3
with:
version: ${{ env.GOLINT_VERSION }}
working-directory: core/launcher/
args: --timeout=3m
skip-pkg-cache: true
- name: lint-engine-server
uses: golangci/golangci-lint-action@v3
with:
version: ${{ env.GOLINT_VERSION }}
working-directory: engine/server/
args: --timeout=3m
skip-pkg-cache: true
- name: lint-engine-launcher
uses: golangci/golangci-lint-action@v3
with:
version: ${{ env.GOLINT_VERSION }}
working-directory: engine/launcher/
args: --timeout=3m
skip-pkg-cache: true
- name: lint-internal-test-suites
uses: golangci/golangci-lint-action@v3
with:
version: ${{ env.GOLINT_VERSION }}
working-directory: internal_testsuites/golang/
args: --timeout=3m
skip-pkg-cache: true
- name: lint-cli
uses: golangci/golangci-lint-action@v3
with:
version: ${{ env.GOLINT_VERSION }}
working-directory: cli/cli/
args: --timeout=3m
skip-pkg-cache: true