-
Notifications
You must be signed in to change notification settings - Fork 51
136 lines (124 loc) · 3.3 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
131
132
133
134
135
136
name: CI
# These trigger patterns courtesy of https://github.com/broccolijs/broccoli/pull/436
on:
pull_request:
push:
# filtering branches here prevents duplicate builds from pull_request and push
branches:
- main
# always run CI for tags
tags:
- '*'
# early issue detection: run CI weekly on Sundays
schedule:
- cron: '0 6 * * 0'
env:
CI: true
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: yarn
- run: yarn install --frozen-lockfile
- run: yarn lint
type-tests:
name: "Type Tests"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: yarn
- run: yarn install --frozen-lockfile
- run: "yarn build"
- run: "yarn workspaces run test:typecheck"
- run: "yarn workspaces run test:tsc"
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: yarn
- run: yarn install --frozen-lockfile
- name: Build
run: yarn build
- name: Run Tests
uses: coactions/setup-xvfb@v1
with:
run: yarn test
# The Windows runner can be super flaky both with Yarn installs and
# when launching browser tests, so we allow for retries in those steps.
test-windows:
name: Test Windows
runs-on: windows-2022
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Install Node
uses: actions/setup-node@v3
with:
node-version: 18
- name: Install Dependencies
uses: nick-fields/retry@v2
with:
max_attempts: 2
timeout_minutes: 10
command: yarn install --frozen-lockfile
- name: Build
run: yarn build
- name: Test @glint/core
uses: nick-fields/retry@v2
with:
max_attempts: 2
timeout_minutes: 20
command: yarn workspace @glint/core test
- name: Test glint-vscode
uses: nick-fields/retry@v2
with:
max_attempts: 2
timeout_minutes: 10
command: yarn workspace glint-vscode test
- name: Test @glint/scripts
run: yarn workspace @glint/scripts test
test-floating-deps:
name: Test Floating Dependencies
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: yarn
- run: yarn install --no-lockfile
- name: Build
run: yarn build
- name: Run Tests
uses: coactions/setup-xvfb@v1
with:
run: yarn test
test-ts-nightly:
name: Test TypeScript Nightly
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: yarn
- run: yarn install --frozen-lockfile
- run: yarn add --dev -W typescript@next
- name: Build
run: yarn build
- name: Run Tests
uses: coactions/setup-xvfb@v1
with:
run: yarn test