forked from trpc/trpc
-
Notifications
You must be signed in to change notification settings - Fork 0
158 lines (125 loc) · 4.21 KB
/
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
name: Lint
on:
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
jobs:
autofix:
runs-on: ubuntu-latest
# wait for to finish before running autofix and only autofix if there are errors
needs: [lint-packages, other-checks, lint-examples]
if: github.event.pull_request.base.ref == 'main' && failure()
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ github.event.pull_request.head.repo.fork && github.token || secrets.TRPC_GITHUB_TOKEN }}
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v4
with:
node-version: 20.x
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
key: ${{ runner.os }}-pnpm-store-all-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-all-
- name: Install deps (with cache)
run: pnpm install --child-concurrency 3
- run: pnpm turbo lint -- --fix
continue-on-error: true
- run: pnpm manypkg fix
continue-on-error: true
- run: pnpm format-fix
continue-on-error: true
- uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: 'chore: auto-fix lint and/or formatting issues'
lint-packages:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v4
with:
node-version: 20.x
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
key: ${{ runner.os }}-pnpm-store-all-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-all-
- name: Install deps (with cache)
run: pnpm install --child-concurrency 3
- name: Run ESLint
run: pnpm turbo --filter="@trpc/*" lint
other-checks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v4
with:
node-version: 20.x
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
key: ${{ runner.os }}-pnpm-store-all-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-all-
- name: Install deps (with cache)
run: pnpm install --child-concurrency 3
- name: Run ts-prune
run: pnpm lint-prune
- name: Run Manypkg
run: pnpm manypkg check
- name: Run Prettier
run: pnpm format --list-different
lint-examples:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v4
with:
node-version: 20.x
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
key: ${{ runner.os }}-pnpm-store-all-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-all-
- name: Install deps (with cache)
run: pnpm install --child-concurrency 3
- name: Run ESLint
run: pnpm turbo --filter="@examples/*" lint