-
Notifications
You must be signed in to change notification settings - Fork 3
142 lines (129 loc) · 3.84 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
137
138
139
140
141
142
name: ci
on: push
jobs:
build-and-upload-artifacts:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
# 'Install yarn v2 dependencies'
- uses: actions/[email protected]
with:
node-version: '20.18.0'
- run: corepack enable
shell: bash
- uses: nick-fields/retry@v2
with:
timeout_minutes: 6
max_attempts: 3
retry_on: error
command: yarn install --immutable
- name: 'Run tsc'
run: yarn tsc:build
- name: Build the typescript code
run: yarn build
- uses: actions/upload-artifact@main
with:
name: build artifacts
path: build/
run-depcheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/[email protected]
with:
node-version: '20.18.0'
- run: corepack enable
shell: bash
- uses: nick-fields/retry@v2
with:
timeout_minutes: 6
max_attempts: 3
retry_on: error
command: yarn install --immutable
- run: yarn pnpify depcheck
run-pre-commits:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 100 # need the history to do a changed files check below (source, origin)
- uses: actions/setup-python@v2
# 'Install yarn v2 dependencies'
- uses: actions/[email protected]
with:
node-version: '20.18.0'
- run: corepack enable
shell: bash
- uses: nick-fields/retry@v2
with:
timeout_minutes: 6
max_attempts: 3
retry_on: error
command: yarn install --immutable
- uses: pre-commit/[email protected]
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/[email protected]
with:
node-version: '20.18.0'
- name: Configure NPM authentication
run: |
yarn config set npmAlwaysAuth true
yarn config set npmAuthToken ${{ secrets.NPM_TOKEN }}
# 'Install yarn v2 dependencies'
- uses: actions/[email protected]
with:
node-version: '20.18.0'
- run: corepack enable
shell: bash
- uses: nick-fields/retry@v2
with:
timeout_minutes: 6
max_attempts: 3
retry_on: error
command: yarn install --immutable
- 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: '20.x'
# 'Install yarn v2 dependencies'
- uses: actions/[email protected]
with:
node-version: '20.18.0'
- run: corepack enable
shell: bash
- 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