@@ -28,109 +28,44 @@ concurrency:
28
28
cancel-in-progress : ${{ github.event_name == 'pull_request' }}
29
29
30
30
jobs :
31
- typos :
32
- runs-on : ubuntu-latest
31
+ lint :
32
+ runs-on : ${{ github.repository_owner == 'coder' && ' ubuntu-latest-16-cores' || 'ubuntu-latest' }}
33
33
steps :
34
34
- name : Checkout
35
- uses : actions/checkout@v2
36
- - name : typos-action
35
+ uses : actions/checkout@v3
36
+
37
+ # Install Go!
38
+ - uses : actions/setup-go@v3
39
+ with :
40
+ go-version : " ~1.19"
41
+
42
+ # Check for any typos!
43
+ - name : Check for typos
37
44
uses : crate-ci/typos@v1.13.3
38
45
with :
39
46
config : .github/workflows/typos.toml
40
- - name : Fix Helper
47
+ - name : Fix the typos
41
48
if : ${{ failure() }}
42
49
run : |
43
50
echo "::notice:: you can automatically fix typos from your CLI:
44
51
cargo install typos-cli
45
52
typos -c .github/workflows/typos.toml -w"
46
53
47
- changes :
48
- runs-on : ubuntu-latest
49
- outputs :
50
- docs-only : ${{ steps.filter.outputs.docs_count == steps.filter.outputs.all_count }}
51
- sh : ${{ steps.filter.outputs.sh }}
52
- ts : ${{ steps.filter.outputs.ts }}
53
- k8s : ${{ steps.filter.outputs.k8s }}
54
- steps :
55
- - uses : actions/checkout@v3
56
- # For pull requests it's not necessary to checkout the code
57
- - uses : dorny/paths-filter@v2
58
- id : filter
59
- with :
60
- filters : |
61
- all:
62
- - '**'
63
- docs:
64
- - 'docs/**'
65
- # For testing:
66
- # - '.github/**'
67
- sh:
68
- - "**.sh"
69
- ts:
70
- - 'site/**'
71
- k8s:
72
- - 'helm/**'
73
- - Dockerfile
74
- - scripts/helm.sh
75
- - id : debug
76
- run : |
77
- echo "${{ toJSON(steps.filter )}}"
78
-
79
- # Debug step
80
- debug-inputs :
81
- needs :
82
- - changes
83
- runs-on : ubuntu-latest
84
- steps :
85
- - id : log
86
- run : |
87
- echo "${{ toJSON(needs) }}"
88
-
89
- style-lint-golangci :
90
- name : style/lint/golangci
91
- timeout-minutes : 5
92
- runs-on : ${{ github.repository_owner == 'coder' && 'ubuntu-latest-16-cores' || 'ubuntu-latest' }}
93
- steps :
94
- - uses : actions/checkout@v3
95
- - uses : actions/setup-go@v3
96
- with :
97
- go-version : " ~1.19"
98
- - name : golangci-lint
54
+ # Check for Go linting errors!
55
+ - name : Lint Go
99
56
uses : golangci/golangci-lint-action@v3.3.1
100
57
with :
101
58
version : v1.48.0
102
59
103
- check-enterprise-imports :
104
- name : check/enterprise-imports
105
- timeout-minutes : 5
106
- runs-on : ubuntu-latest
107
- steps :
108
- - uses : actions/checkout@v3
109
- - name : Check imports of enterprise code
110
- run : ./scripts/check_enterprise_imports.sh
111
-
112
- style-lint-shellcheck :
113
- name : style/lint/shellcheck
114
- timeout-minutes : 5
115
- runs-on : ubuntu-latest
116
- steps :
117
- - uses : actions/checkout@v3
118
- - name : Run ShellCheck
60
+ - name : Lint shell scripts
119
61
uses : ludeeus/action-shellcheck@1.1.0
120
62
env :
121
63
SHELLCHECK_OPTS : --external-sources
122
64
with :
123
65
ignore : node_modules
124
66
125
- style-lint-typescript :
126
- name : " style/lint/typescript"
127
- timeout-minutes : 5
128
- runs-on : ubuntu-latest
129
- steps :
130
- - name : Checkout
131
- uses : actions/checkout@v3
132
-
133
- - name : Cache Node
67
+ # Lint our dashboard!
68
+ - name : Cache node_modules
134
69
id : cache-node
135
70
uses : actions/cache@v3
136
71
with :
@@ -140,36 +75,59 @@ jobs:
140
75
key : js-${{ runner.os }}-test-${{ hashFiles('**/yarn.lock') }}
141
76
restore-keys : |
142
77
js-${{ runner.os }}-
143
-
144
78
- name : Install node_modules
145
79
run : ./scripts/yarn_install.sh
146
-
147
- - name : " yarn lint"
80
+ - name : Lint TypeScript
148
81
run : yarn lint
149
82
working-directory : site
150
83
151
- style-lint-k8s :
152
- name : " style/lint/k8s"
153
- timeout-minutes : 5
154
- needs : changes
155
- if : needs.changes.outputs.k8s == 'true'
156
- runs-on : ubuntu-latest
157
- steps :
158
- - name : Checkout
159
- uses : actions/checkout@v3
160
-
84
+ # Make sure the Helm chart is linted!
161
85
- name : Install helm
162
86
uses : azure/setup-helm@v3
163
87
with :
164
88
version : v3.9.2
165
-
166
- - name : cd helm && make lint
89
+ - name : Lint Helm chart
167
90
run : |
168
91
cd helm
169
92
make lint
170
93
94
+ # Ensure AGPL and Enterprise are separated!
95
+ - name : Check for AGPL code importing Enterprise...
96
+ run : ./scripts/check_enterprise_imports.sh
97
+
98
+ changes :
99
+ runs-on : ubuntu-latest
100
+ outputs :
101
+ docs-only : ${{ steps.filter.outputs.docs_count == steps.filter.outputs.all_count }}
102
+ sh : ${{ steps.filter.outputs.sh }}
103
+ ts : ${{ steps.filter.outputs.ts }}
104
+ k8s : ${{ steps.filter.outputs.k8s }}
105
+ steps :
106
+ - uses : actions/checkout@v3
107
+ # For pull requests it's not necessary to checkout the code
108
+ - uses : dorny/paths-filter@v2
109
+ id : filter
110
+ with :
111
+ filters : |
112
+ all:
113
+ - '**'
114
+ docs:
115
+ - 'docs/**'
116
+ # For testing:
117
+ # - '.github/**'
118
+ sh:
119
+ - "**.sh"
120
+ ts:
121
+ - 'site/**'
122
+ k8s:
123
+ - 'helm/**'
124
+ - Dockerfile
125
+ - scripts/helm.sh
126
+ - id : debug
127
+ run : |
128
+ echo "${{ toJSON(steps.filter )}}"
129
+
171
130
gen :
172
- name : " style/gen"
173
131
timeout-minutes : 8
174
132
runs-on : ${{ github.repository_owner == 'coder' && 'ubuntu-latest-16-cores' || 'ubuntu-latest' }}
175
133
needs : changes
@@ -243,8 +201,7 @@ jobs:
243
201
- name : Check for unstaged files
244
202
run : ./scripts/check_unstaged.sh
245
203
246
- style-fmt :
247
- name : " style/fmt"
204
+ fmt :
248
205
runs-on : ubuntu-latest
249
206
timeout-minutes : 5
250
207
steps :
0 commit comments