forked from eslint/eslint
-
Notifications
You must be signed in to change notification settings - Fork 0
130 lines (112 loc) · 3.22 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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
jobs:
verify_files:
name: Verify Files
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "lts/*"
- name: Install Packages
run: npm install
- name: Install Docs Packages
working-directory: docs
run: npm install
- name: Lint Files (eslint)
uses: trunk-io/trunk-action@v1
with:
# Run on everything except the docs folder.
arguments: --ignore=docs/** --filter=eslint
check-mode: all
- name: Lint Files (other)
uses: trunk-io/trunk-action@v1
with:
# Run on everything except the docs folder.
arguments: --ignore=docs/** --filter=-eslint
- name: Check Rule Files
run: node Makefile checkRuleFiles
- name: Check Licenses
run: node Makefile checkLicenses
- name: Lint Docs Files (eslint)
uses: trunk-io/trunk-action@v1
with:
# Run only on the docs folder.
arguments: --ignore=** --ignore=!docs/** --filter=eslint
check-mode: all
- name: Lint Docs Files (other)
uses: trunk-io/trunk-action@v1
with:
# Run only on the docs folder.
arguments: --ignore=** --ignore=!docs/** --filter=-eslint
- name: Check Rule Examples
run: node Makefile checkRuleExamples
- name: Lint Files, Dependencies, & Exports
run: npm run lint:unused
test_on_node:
name: Test
strategy:
matrix:
os: [ubuntu-latest]
node: [23.x, 22.x, 21.x, 20.x, 18.x, "18.18.0"]
include:
- os: windows-latest
node: "lts/*"
- os: macOS-latest
node: "lts/*"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
- name: Install Packages
run: npm install
- name: Test
run: node Makefile mocha
- name: Fuzz Test
run: node Makefile fuzz
- name: Test EMFILE Handling
run: npm run test:emfile
test_on_browser:
name: Browser Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20" # Should be the same as the version used on Netlify to build the ESLint Playground
- name: Install Packages
run: npm install
- name: Test
run: node Makefile wdio
- name: Fuzz Test
run: node Makefile fuzz
- uses: actions/upload-artifact@v4
if: failure()
with:
name: logs
path: |
wdio-logs/*.log
test_types:
name: Types Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "lts/*"
- name: Install Packages
run: npm install
- name: Test eslint types
run: npm run test:types
- name: Test @eslint/js types
run: npm run test:types
working-directory: packages/js