Skip to content

Commit 45a9d6f

Browse files
committed
chore: merge CI linting jobs
1 parent 2312bc4 commit 45a9d6f

File tree

1 file changed

+57
-100
lines changed

1 file changed

+57
-100
lines changed

.github/workflows/coder.yaml

Lines changed: 57 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -28,109 +28,44 @@ concurrency:
2828
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
2929

3030
jobs:
31-
typos:
32-
runs-on: ubuntu-latest
31+
lint:
32+
runs-on: ${{ github.repository_owner == 'coder' && 'ubuntu-latest-16-cores' || 'ubuntu-latest' }}
3333
steps:
3434
- 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
3744
uses: crate-ci/typos@v1.13.3
3845
with:
3946
config: .github/workflows/typos.toml
40-
- name: Fix Helper
47+
- name: Fix the typos
4148
if: ${{ failure() }}
4249
run: |
4350
echo "::notice:: you can automatically fix typos from your CLI:
4451
cargo install typos-cli
4552
typos -c .github/workflows/typos.toml -w"
4653
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
9956
uses: golangci/golangci-lint-action@v3.3.1
10057
with:
10158
version: v1.48.0
10259

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
11961
uses: ludeeus/action-shellcheck@1.1.0
12062
env:
12163
SHELLCHECK_OPTS: --external-sources
12264
with:
12365
ignore: node_modules
12466

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
13469
id: cache-node
13570
uses: actions/cache@v3
13671
with:
@@ -140,36 +75,59 @@ jobs:
14075
key: js-${{ runner.os }}-test-${{ hashFiles('**/yarn.lock') }}
14176
restore-keys: |
14277
js-${{ runner.os }}-
143-
14478
- name: Install node_modules
14579
run: ./scripts/yarn_install.sh
146-
147-
- name: "yarn lint"
80+
- name: Lint TypeScript
14881
run: yarn lint
14982
working-directory: site
15083

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!
16185
- name: Install helm
16286
uses: azure/setup-helm@v3
16387
with:
16488
version: v3.9.2
165-
166-
- name: cd helm && make lint
89+
- name: Lint Helm chart
16790
run: |
16891
cd helm
16992
make lint
17093
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+
171130
gen:
172-
name: "style/gen"
173131
timeout-minutes: 8
174132
runs-on: ${{ github.repository_owner == 'coder' && 'ubuntu-latest-16-cores' || 'ubuntu-latest' }}
175133
needs: changes
@@ -243,8 +201,7 @@ jobs:
243201
- name: Check for unstaged files
244202
run: ./scripts/check_unstaged.sh
245203

246-
style-fmt:
247-
name: "style/fmt"
204+
fmt:
248205
runs-on: ubuntu-latest
249206
timeout-minutes: 5
250207
steps:

0 commit comments

Comments
 (0)