@@ -35,46 +35,68 @@ global_job_config:
3535
3636
3737blocks :
38-   - name : " Linux arm64 : Build and test" 
38+   - name : " Linux amd64 (musl) : Build and test" 
3939    dependencies : [ ] 
4040    task :
4141      agent :
4242        machine :
43-           type : s1-prod-ubuntu20-04-arm64-1 
44-       jobs :
45-         - name : " Build from source and test" 
46-           commands :
47-             - npm install  #  this will actually not build anything if we have a release, but rather, fetch things using node-pre-gyp - so change this later.
48-             - make test 
49- 
50-   - name : ' macOS arm64/m1: Build and test' 
51-     dependencies : [] 
52-     task :
53-       agent :
54-         machine :
55-           type : s1-prod-macos-arm64 
43+           type : s1-prod-ubuntu20-04-amd64-2 
5644      jobs :
57-         - name : ' Build from source and test' 
45+         - name : " Build from source and test for musl " 
5846          commands :
59-             - npm install  #  this will actually not build anything if we have a release, but rather, fetch things using node-pre-gyp - so change this later.
60-             - make test 
47+             - docker run -v "$(pwd):/v" node:18-alpine /v/.semaphore/build-docker.sh 
6148
62-   - name : " Linux amd64 : Build, test, lint " 
49+   - name : " Linux arm64 (musl) : Build and test " 
6350    dependencies : [ ] 
6451    task :
6552      agent :
6653        machine :
67-           type : s1-prod-ubuntu20-04-amd64-2 
68-       prologue :
69-         commands :
70-           - npm install  #  this will actually not build anything if we have a release, but rather, fetch things using node-pre-gyp - so change this later.
54+           type : s1-prod-ubuntu20-04-arm64-1 
7155      jobs :
72-         - name : " Test" 
73-           commands :
74-             - make test 
75-         - name : " ESLint" 
56+         - name : " Build from source and test for musl" 
7657          commands :
77-             - npx eslint lib/kafkajs 
58+               - docker run -v "$(pwd):/v" node:18-alpine /v/.semaphore/build-docker.sh 
59+ 
60+   #  - name: "Linux arm64: Build and test"
61+   #    dependencies: [ ]
62+   #    task:
63+   #      agent:
64+   #        machine:
65+   #          type: s1-prod-ubuntu20-04-arm64-1
66+   #      jobs:
67+   #        - name: "Build from source and test"
68+   #          commands:
69+   #            - npm install # this will actually not build anything if we have a release, but rather, fetch things using node-pre-gyp - so change this later.
70+   #            - make test
71+ 
72+   #  - name: 'macOS arm64/m1: Build and test'
73+   #    dependencies: []
74+   #    task:
75+   #      agent:
76+   #        machine:
77+   #          type: s1-prod-macos-arm64
78+   #      jobs:
79+   #        - name: 'Build from source and test'
80+   #          commands:
81+   #            - npm install # this will actually not build anything if we have a release, but rather, fetch things using node-pre-gyp - so change this later.
82+   #            - make test
83+ 
84+   #  - name: "Linux amd64: Build, test, lint"
85+   #    dependencies: [ ]
86+   #    task:
87+   #      agent:
88+   #        machine:
89+   #          type: s1-prod-ubuntu20-04-amd64-2
90+   #      prologue:
91+   #        commands:
92+   #          - npm install # this will actually not build anything if we have a release, but rather, fetch things using node-pre-gyp - so change this later.
93+   #      jobs:
94+   #        - name: "Test"
95+   #          commands:
96+   #            - make test
97+   #        - name: "ESLint"
98+   #          commands:
99+   #            - npx eslint lib/kafkajs
78100
79101
80102  - name : " Linux amd64: Release" 
@@ -164,6 +186,83 @@ blocks:
164186            - npx node-pre-gyp package 
165187            - ls build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY} 
166188            - artifact push project "build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" --destination "releases/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" 
189+ 
190+   - name : " Linux amd64 musl: Release" 
191+     dependencies : [ ] 
192+     run :
193+       when : " tag =~ '^v[0-9]\\ .'" 
194+     task :
195+       agent :
196+         machine :
197+           type : s1-prod-ubuntu20-04-amd64-1 
198+       env_vars :
199+         - name : ARCHITECTURE 
200+           value : " x64" 
201+         - name : PLATFORM 
202+           value : " linux" 
203+         - name : LIBC 
204+           value : " musl" 
205+       jobs :
206+         - name : " Release: LTS:18" 
207+           commands :
208+             - export NODE_ABI=108 
209+             - export ARTIFACT_KEY="confluent-kafka-js-${SEMAPHORE_GIT_TAG_NAME}-node-v${NODE_ABI}-linux-${LIBC}-${ARCHITECTURE}.tar.gz" 
210+             - docker run -v "$(pwd):/v" node:18-alpine /v/.semaphore/build-docker.sh 
211+             - ls build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY} 
212+             - artifact push project "build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" --destination "releases/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" 
213+         - name : " Release: LTS:20" 
214+           commands :
215+             - export NODE_ABI=115 
216+             - export ARTIFACT_KEY="confluent-kafka-js-${SEMAPHORE_GIT_TAG_NAME}-node-v${NODE_ABI}-linux-${LIBC}-${ARCHITECTURE}.tar.gz" 
217+             - docker run -v "$(pwd):/v" node:20-alpine /v/.semaphore/build-docker.sh 
218+             - ls build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY} 
219+             - artifact push project "build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" --destination "releases/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" 
220+         - name : " Release: latest: 21" 
221+           commands :
222+             - export NODE_ABI=120 
223+             - export ARTIFACT_KEY="confluent-kafka-js-${SEMAPHORE_GIT_TAG_NAME}-node-v${NODE_ABI}-linux-${LIBC}-${ARCHITECTURE}.tar.gz" 
224+             - docker run -v "$(pwd):/v" node:21-alpine /v/.semaphore/build-docker.sh 
225+             - ls build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY} 
226+             - artifact push project "build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" --destination "releases/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" 
227+ 
228+   - name : " Linux arm64 musl: Release" 
229+     dependencies : [ ] 
230+     run :
231+       when : " tag =~ '^v[0-9]\\ .'" 
232+     task :
233+       agent :
234+         machine :
235+           type : s1-prod-ubuntu20-04-arm64-1 
236+       env_vars :
237+         - name : ARCHITECTURE 
238+           value : " arm64" 
239+         - name : PLATFORM 
240+           value : " linux" 
241+         - name : LIBC 
242+           value : " musl" 
243+       jobs :
244+         - name : " Release: LTS:18" 
245+           commands :
246+             - export NODE_ABI=108 
247+             - export ARTIFACT_KEY="confluent-kafka-js-${SEMAPHORE_GIT_TAG_NAME}-node-v${NODE_ABI}-linux-${LIBC}-${ARCHITECTURE}.tar.gz" 
248+             - docker run -v "$(pwd):/v" node:18-alpine /v/.semaphore/build-docker.sh 
249+             - ls build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY} 
250+             - artifact push project "build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" --destination "releases/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" 
251+         - name : " Release: LTS:20" 
252+           commands :
253+             - export NODE_ABI=115 
254+             - export ARTIFACT_KEY="confluent-kafka-js-${SEMAPHORE_GIT_TAG_NAME}-node-v${NODE_ABI}-linux-${LIBC}-${ARCHITECTURE}.tar.gz" 
255+             - docker run -v "$(pwd):/v" node:20-alpine /v/.semaphore/build-docker.sh 
256+             - ls build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY} 
257+             - artifact push project "build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" --destination "releases/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" 
258+         - name : " Release: latest: 21" 
259+           commands :
260+             - export NODE_ABI=120 
261+             - export ARTIFACT_KEY="confluent-kafka-js-${SEMAPHORE_GIT_TAG_NAME}-node-v${NODE_ABI}-linux-${LIBC}-${ARCHITECTURE}.tar.gz" 
262+             - docker run -v "$(pwd):/v" node:21-alpine /v/.semaphore/build-docker.sh 
263+             - ls build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY} 
264+             - artifact push project "build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" --destination "releases/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" 
265+ 
167266  - name : " macOS arm64/m1: Release" 
168267    dependencies : [ ] 
169268    run :
0 commit comments