-
Notifications
You must be signed in to change notification settings - Fork 0
134 lines (126 loc) · 3.77 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
name: ci
on: push
jobs:
build-and-upload-artifacts:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js 20.x
uses: actions/setup-node@v1
with:
node-version: 20.x
- run: yarn
- 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: [20.x, 20.x]
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- run: yarn
- run: yarn test
run-depcheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js 20.x
uses: actions/setup-node@v1
with:
node-version: 20.x
- run: yarn
- run: yarn 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
- name: Use Node.js 20.x
uses: actions/setup-node@v1
with:
node-version: 20.x
- run: yarn
- name: pre-commit
env:
SKIP: eslint
run: |
python -m pip install pre-commit && \
python -m pip freeze --local && \
pre-commit run \
--show-diff-on-failure \
--color=always \
--source ${{ github.event.pull_request.base.sha || 'HEAD~1' }} \
--origin ${{ github.event.pull_request.head.sha || 'HEAD' }} ;
run-eslint:
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)
- name: Use Node.js 20.x
uses: actions/setup-node@v1
with:
node-version: 20.x
- run: yarn install --immutable
# The exclusion from the `git diff` is necessary because `yarn install`
# on CI modifies the `.pnp.cjs` file to change their actual locations
# but we don't care about that on CI.
- run: yarn lint --quiet --fix && git diff --exit-code -- . ':(exclude)*.pnp.cjs'
build-to-npm:
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
needs:
- run-mocha
- run-depcheck
- build-and-upload-artifacts
- run-pre-commits
- run-eslint
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: '20.x'
- run: yarn
- 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-mocha
- run-depcheck
- build-and-upload-artifacts
- run-pre-commits
- run-eslint
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: '20.x'
- run: yarn
- 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