-
Notifications
You must be signed in to change notification settings - Fork 10
108 lines (95 loc) · 2.74 KB
/
ci.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
name: CI
on:
push:
branches:
- main
pull_request: {}
concurrency:
group: ci-${{ github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
# Fills the dep cache so parallel jobs can start faster.
# No sense in running tests if we can't install correctly.
setup:
name: "Setup"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: wyvox/action-setup-pnpm@v3
# test:
# name: "Tests"
# runs-on: ubuntu-latest
# needs: [setup]
# steps:
# - uses: actions/checkout@v4
# - uses: wyvox/action-setup-pnpm@v3
# - run: pnpm test
tests:
name: "Tests"
runs-on: ubuntu-latest
needs: [setup]
steps:
- uses: actions/checkout@v4
- uses: wyvox/action-setup-pnpm@v3
- run: pnpm test
- run: pnpm --filter '*' test
ts_support:
name: "TS: ${{ matrix.tsVersion }}, eslint-ts-deps: ${{ matrix.eslintTsVersion }}"
runs-on: ubuntu-latest
needs: [tests]
timeout-minutes: 2
strategy:
fail-fast: false
matrix:
eslintTsVersion:
- ^6
- ^7
- ^8
- canary
tsVersion:
- 5.3
- 5.4
- 5.5
- 5.6
- 5.7
- rc
- next
steps:
- uses: actions/checkout@v4
- uses: wyvox/action-setup-pnpm@v3
- name: 'TS: ${{ matrix.tsVersion }}, eslint-plugin-ts: ${{ matrix.eslintTsVersion }}'
run: |-
function sponge() {
local line;
tmp=$(mktemp)
while IFS= read -r line
do
echo $line >> $tmp;
done
mv "$tmp" $1
}
jq '.pnpm.overrides."@typescript-eslint/parser" = "${{ matrix.eslintTsVersion }}"' package.json | sponge package.json
jq '.pnpm.overrides."@typescript-eslint/scope-manager" = "${{ matrix.eslintTsVersion }}"' package.json | sponge package.json
jq '.pnpm.overrides."@typescript-eslint/visitor-keys" = "${{ matrix.eslintTsVersion }}"' package.json | sponge package.json
jq '.pnpm.overrides.typescript = "${{ matrix.tsVersion }}"' package.json | sponge package.json
- run: pnpm install --no-frozen-lockfile
- run: pnpm test
- run: pnpm --filter '*' test:check
- run: pnpm --filter '*' test:fix
test_eslint-plugin-ember:
name: "eslint-plugin-ember"
runs-on: ubuntu-latest
needs: [setup]
steps:
- uses: actions/checkout@v4
- uses: wyvox/action-setup-pnpm@v3
- run: node ./scripts/eslint-plugin-ember-test.mjs
lint:
name: "Lint"
runs-on: ubuntu-latest
needs: [setup]
steps:
- uses: actions/checkout@v4
- uses: wyvox/action-setup-pnpm@v3
- name: Lint
run: pnpm lint