@@ -25,33 +25,58 @@ global_job_config:
2525 prologue :
2626 commands :
2727 - checkout
28+ - git submodule update --init --recursive
29+ - cd deps/librdkafka
30+ - git fetch origin
31+ - git checkout dev_libdir_fix_for_zstd_zlib
32+ - cd ../../
33+ - export MKL_DEBUG=1
34+
2835
29- # blocks:
30- # - name: "Linux amd64: Build and test"
31- # dependencies: [ ]
32- # task:
33- # agent:
34- # machine:
35- # type: s1-prod-ubuntu20-04-amd64-2
36- # prologue:
37- # commands:
38- # - sem-version node 18.19.0
39- # - node --version
40- # - npm --version
41- # - npx --version
42- # - sudo apt-get update -q
43- # - git submodule update --init --recursive
44- # - sudo apt install -y libcurl4-openssl-dev libcrypto++-dev libssl-dev libzstd-dev
45- # - 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.
46- # jobs:
47- # - name: "Test"
48- # commands:
49- # - make test
50- # - name: "ESLint"
51- # commands:
52- # - npx eslint lib/kafkajs
5336
5437blocks :
38+ - name : " Linux arm64: Build and test"
39+ dependencies : [ ]
40+ task :
41+ agent :
42+ 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
56+ jobs :
57+ - name : ' Build from source and test'
58+ 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
61+
62+ - name : " Linux amd64: Build, test, lint"
63+ dependencies : [ ]
64+ task :
65+ agent :
66+ 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.
71+ jobs :
72+ - name : " Test"
73+ commands :
74+ - make test
75+ - name : " ESLint"
76+ commands :
77+ - npx eslint lib/kafkajs
78+
79+
5580 - name : " Linux amd64: Release"
5681 dependencies : [ ]
5782 run :
@@ -60,41 +85,125 @@ blocks:
6085 agent :
6186 machine :
6287 type : s1-prod-ubuntu20-04-amd64-2
63- prologue :
64- commands :
65- - sem-version node 18.19.0
66- - node --version
67- - npm --version
68- - npx --version
69- - sudo apt-get update -q
70- - git submodule update --init --recursive
71- - sudo apt install -y libcurl4-openssl-dev libcrypto++-dev libssl-dev libzstd-dev
88+ env_vars :
89+ - name : ARCHITECTURE
90+ value : " x64"
91+ - name : PLATFORM
92+ value : " linux"
93+ - name : LIBC
94+ value : " glibc"
7295 jobs :
73- - name : " Release"
96+ - name : " Release: LTS:18 "
7497 commands :
75- - export ARTIFACT_KEY="node-librdkafka-${SEMAPHORE_GIT_TAG_NAME}-node-v108-linux-x64.tar.gz"
98+ - sem-version node 18.19.0
99+ - export NODE_ABI=108
100+ - export ARTIFACT_KEY="node-librdkafka-${SEMAPHORE_GIT_TAG_NAME}-node-v${NODE_ABI}-${PLATFORM}-${LIBC}-${ARCHITECTURE}.tar.gz"
76101 - npm install # node-pre-gyp will fallback to build here, because new tag implies no release yet.
77102 - npx node-pre-gyp package
78103 - ls build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}
79- - artifact push project "build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" --destination "releases/${ARTIFACT_KEY}"
80-
81- # - name: 'OSX arm64/m1'
82- # dependencies: []
83- # task:
84- # agent:
85- # machine:
86- # type: s1-prod-macos-arm64
87- # prologue:
88- # commands:
89- # - sem-version node 18.19.0
90- # - node --version
91- # - npm --version
92- # - npx --version
93- # - git submodule update --init --recursive
94- # jobs:
95- # - name: 'Build from source and test'
96- # commands:
97- # - 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.
98- # - make test
99-
104+ - artifact push project "build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" --destination "releases/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}"
105+ - name : " Release: LTS:20"
106+ commands :
107+ - sem-version node 20.10.0
108+ - export NODE_ABI=115
109+ - export ARTIFACT_KEY="node-librdkafka-${SEMAPHORE_GIT_TAG_NAME}-node-v${NODE_ABI}-${PLATFORM}-${LIBC}-${ARCHITECTURE}.tar.gz"
110+ - npm install # node-pre-gyp will fallback to build here, because new tag implies no release yet.
111+ - npx node-pre-gyp package
112+ - ls build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}
113+ - artifact push project "build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" --destination "releases/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}"
114+ - name : " Release: latest: 21"
115+ commands :
116+ - sem-version node 21.4.0
117+ - export NODE_ABI=120
118+ - export ARTIFACT_KEY="node-librdkafka-${SEMAPHORE_GIT_TAG_NAME}-node-v${NODE_ABI}-${PLATFORM}-${LIBC}-${ARCHITECTURE}.tar.gz"
119+ - npm install # node-pre-gyp will fallback to build here, because new tag implies no release yet.
120+ - npx node-pre-gyp package
121+ - ls build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}
122+ - artifact push project "build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" --destination "releases/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}"
100123
124+ - name : " Linux arm64: Release"
125+ dependencies : [ ]
126+ run :
127+ when : " tag =~ '^v[0-9]\\ .'"
128+ task :
129+ agent :
130+ machine :
131+ type : s1-prod-ubuntu20-04-arm64-1
132+ env_vars :
133+ - name : ARCHITECTURE
134+ value : " arm64"
135+ - name : PLATFORM
136+ value : " linux"
137+ - name : LIBC
138+ value : " glibc"
139+ jobs :
140+ - name : " Release: LTS:18"
141+ commands :
142+ - sem-version node 18.19.0
143+ - export NODE_ABI=108
144+ - export ARTIFACT_KEY="node-librdkafka-${SEMAPHORE_GIT_TAG_NAME}-node-v${NODE_ABI}-${PLATFORM}-${LIBC}-${ARCHITECTURE}.tar.gz"
145+ - npm install # node-pre-gyp will fallback to build here, because new tag implies no release yet.
146+ - npx node-pre-gyp package
147+ - ls build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}
148+ - artifact push project "build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" --destination "releases/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}"
149+ - name : " Release: LTS:20"
150+ commands :
151+ - sem-version node 20.10.0
152+ - export NODE_ABI=115
153+ - export ARTIFACT_KEY="node-librdkafka-${SEMAPHORE_GIT_TAG_NAME}-node-v${NODE_ABI}-${PLATFORM}-${LIBC}-${ARCHITECTURE}.tar.gz"
154+ - npm install # node-pre-gyp will fallback to build here, because new tag implies no release yet.
155+ - npx node-pre-gyp package
156+ - ls build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}
157+ - artifact push project "build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" --destination "releases/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}"
158+ - name : " Release: latest: 21"
159+ commands :
160+ - sem-version node 21.4.0
161+ - export NODE_ABI=120
162+ - export ARTIFACT_KEY="node-librdkafka-${SEMAPHORE_GIT_TAG_NAME}-node-v${NODE_ABI}-${PLATFORM}-${LIBC}-${ARCHITECTURE}.tar.gz"
163+ - npm install # node-pre-gyp will fallback to build here, because new tag implies no release yet.
164+ - npx node-pre-gyp package
165+ - ls build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}
166+ - artifact push project "build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" --destination "releases/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}"
167+ - name : " macOS arm64/m1: Release"
168+ dependencies : [ ]
169+ run :
170+ when : " tag =~ '^v[0-9]\\ .'"
171+ task :
172+ agent :
173+ machine :
174+ type : s1-prod-macos-arm64
175+ env_vars :
176+ - name : ARCHITECTURE
177+ value : " arm64"
178+ - name : PLATFORM
179+ value : " darwin"
180+ - name : LIBC
181+ value : " unknown"
182+ jobs :
183+ - name : " Release: LTS:18"
184+ commands :
185+ - sem-version node 18.19.0
186+ - export NODE_ABI=108
187+ - export ARTIFACT_KEY="node-librdkafka-${SEMAPHORE_GIT_TAG_NAME}-node-v${NODE_ABI}-${PLATFORM}-${LIBC}-${ARCHITECTURE}.tar.gz"
188+ - npm install # node-pre-gyp will fallback to build here, because new tag implies no release yet.
189+ - npx node-pre-gyp package
190+ - ls build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}
191+ - artifact push project "build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" --destination "releases/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}"
192+ - name : " Release: LTS:20"
193+ commands :
194+ - sem-version node 20.10.0
195+ - export NODE_ABI=115
196+ - export ARTIFACT_KEY="node-librdkafka-${SEMAPHORE_GIT_TAG_NAME}-node-v${NODE_ABI}-${PLATFORM}-${LIBC}-${ARCHITECTURE}.tar.gz"
197+ - npm install # node-pre-gyp will fallback to build here, because new tag implies no release yet.
198+ - npx node-pre-gyp package
199+ - ls build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}
200+ - artifact push project "build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" --destination "releases/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}"
201+ - name : " Release: latest: 21"
202+ commands :
203+ - sem-version node 21.4.0
204+ - export NODE_ABI=120
205+ - export ARTIFACT_KEY="node-librdkafka-${SEMAPHORE_GIT_TAG_NAME}-node-v${NODE_ABI}-${PLATFORM}-${LIBC}-${ARCHITECTURE}.tar.gz"
206+ - npm install # node-pre-gyp will fallback to build here, because new tag implies no release yet.
207+ - npx node-pre-gyp package
208+ - ls build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}
209+ - artifact push project "build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" --destination "releases/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}"
0 commit comments