@@ -107,14 +107,51 @@ jobs:
107
107
name : bindings-${{ env.PLATFORM_NAME }}
108
108
path : packages/*/*.${{ env.PLATFORM_NAME }}.node
109
109
110
+ build_musl :
111
+ if : " !contains(github.event.head_commit.message, 'skip ci')"
112
+ name : stable - linux-musl - node@12
113
+ runs-on : ubuntu-latest
114
+
115
+ steps :
116
+ - uses : actions/checkout@v2
117
+
118
+ - name : Login to registry
119
+ run : |
120
+ docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD $DOCKER_REGISTRY_URL
121
+ env :
122
+ DOCKER_REGISTRY_URL : docker.pkg.github.com
123
+ DOCKER_USERNAME : ${{ github.actor }}
124
+ DOCKER_PASSWORD : ${{ secrets.GITHUB_TOKEN }}
125
+
126
+ - name : Pull docker image
127
+ run : |
128
+ docker pull docker.pkg.github.com/napi-rs/napi-rs/rust-nodejs-alpine:lts
129
+ docker tag docker.pkg.github.com/napi-rs/napi-rs/rust-nodejs-alpine:lts builder
130
+
131
+ - name : ' Install dependencies'
132
+ run : yarn install --frozen-lockfile --registry https://registry.npmjs.org
133
+
134
+ - name : ' Build'
135
+ run : |
136
+ docker run --rm -v $(pwd)/.cargo:/root/.cargo -v $(pwd):/node-rs -w /node-rs builder sh -c "cargo build --release"
137
+ docker run --rm -v $(pwd)/.cargo:/root/.cargo -v $(pwd):/node-rs -w /node-rs builder sh -c "./node_modules/.bin/lerna run build --stream -- --musl"
138
+
139
+ - name : Upload artifact
140
+ uses : actions/upload-artifact@v2
141
+ with :
142
+ name : bindings-musl
143
+ path : packages/*/*.musl.node
144
+
110
145
test_binding :
111
146
name : Test bindings on ${{ matrix.os }} - node@${{ matrix.node }}
112
- needs : lint_and_build
147
+ needs :
148
+ - lint_and_build
149
+ - build_musl
113
150
strategy :
114
151
fail-fast : false
115
152
matrix :
116
153
os : [ubuntu-latest, macos-latest, windows-latest]
117
- node : ['10', '12', '13', ' 14']
154
+ node : ['10', '12', '14']
118
155
runs-on : ${{ matrix.os }}
119
156
120
157
steps :
@@ -158,6 +195,45 @@ jobs:
158
195
- name : Run benchmark
159
196
run : yarn bench
160
197
198
+ test_musl_binding :
199
+ name : Test bindings on alpine - node@${{ matrix.node }}
200
+ needs :
201
+ - lint_and_build
202
+ - build_musl
203
+ strategy :
204
+ fail-fast : false
205
+ matrix :
206
+ node : ['10', '12', '14']
207
+ runs-on : ubuntu-latest
208
+
209
+ steps :
210
+ - uses : actions/checkout@v2
211
+
212
+ - name : Download artifacts
213
+ uses : actions/download-artifact@v2
214
+ with :
215
+ name : bindings-musl
216
+ path : artifacts
217
+
218
+ - name : Move artifacts
219
+ run : node scripts/mv-artifacts.js
220
+ shell : bash
221
+ env :
222
+ MOVE_TARGET : musl
223
+
224
+ - name : List packages
225
+ run : ls -R packages
226
+ shell : bash
227
+
228
+ - name : ' Install dependencies'
229
+ run : yarn install --frozen-lockfile --ignore-scripts --registry https://registry.npmjs.org
230
+
231
+ - name : Build TypeScript
232
+ run : yarn build:ts
233
+
234
+ - name : Run simple tests
235
+ run : docker run --rm -v $(pwd)/.cargo:/root/.cargo -v $(pwd):/node-rs -w /node-rs node:${{ matrix.node }}-alpine sh -c "./node_modules/.bin/lerna run test:simple --stream"
236
+
161
237
publish :
162
238
name : Publish
163
239
if : " startsWith(github.event.head_commit.message, 'chore(release): publish')"
0 commit comments