-
Notifications
You must be signed in to change notification settings - Fork 0
136 lines (130 loc) · 3.82 KB
/
ci.yml
File metadata and controls
136 lines (130 loc) · 3.82 KB
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
on: push
jobs:
build-and-upload-artifacts:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3.1.1
with:
node-version: "22.18.0"
- run: npm install -g "yarn@1.22.5"
shell: bash
- uses: nick-fields/retry@v2
with:
timeout_minutes: 6
max_attempts: 3
retry_on: error
command: yarn install --immutable
- name: Build the typescript code
run: yarn build
- uses: actions/upload-artifact@main
with:
name: build artifacts
path: build/
run-mocha:
runs-on: ubuntu-latest
strategy:
matrix:
os: [ubuntu-latest]
node-version: [22.x]
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- uses: nick-fields/retry@v2
with:
timeout_minutes: 6
max_attempts: 3
retry_on: error
command: yarn install --immutable
- run: yarn test
run-depcheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js 22.x
uses: actions/setup-node@v1
with:
node-version: 22.x
- uses: nick-fields/retry@v2
with:
timeout_minutes: 6
max_attempts: 3
retry_on: error
command: yarn install --immutable
- run: yarn depcheck
run-pre-commits:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 100 # need the history to do a changed files check below (source, origin)
- uses: actions/setup-python@v2
- name: Use Node.js 22.x
uses: actions/setup-node@v1
with:
node-version: 22.x
- uses: nick-fields/retry@v2
with:
timeout_minutes: 6
max_attempts: 3
retry_on: error
command: yarn install --immutable
- uses: pre-commit/action@v3.0.0
with:
extra_args: --source ${{ github.event.pull_request.base.sha || 'HEAD~1' }} --origin ${{ github.event.pull_request.head.sha || 'HEAD' }}
build-to-npm:
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
needs:
- run-depcheck
- build-and-upload-artifacts
- run-pre-commits
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: "22.x"
- uses: nick-fields/retry@v2
with:
timeout_minutes: 6
max_attempts: 3
retry_on: error
command: yarn install --immutable
- name: Configure NPM authentication
run: |
yarn config set npmAlwaysAuth true
yarn config set npmAuthToken ${{ secrets.NPM_TOKEN }}
- name: Publish to yarn/npm
run: yarn npm publish
build-to-github-packages:
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
needs:
- run-depcheck
- build-and-upload-artifacts
- run-pre-commits
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: "22.x"
- uses: nick-fields/retry@v2
with:
timeout_minutes: 6
max_attempts: 3
retry_on: error
command: yarn install --immutable
- name: Configure Github Packages authentication
run: |
yarn config set npmAlwaysAuth true
yarn config set npmRegistryServer https://npm.pkg.github.com
yarn config set npmPublishRegistry https://npm.pkg.github.com
yarn config set npmAuthToken ${{ secrets.GITHUB_TOKEN }}
- name: Publish to Github packages
run: yarn npm publish