@@ -25,33 +25,58 @@ global_job_config:
25
25
prologue :
26
26
commands :
27
27
- 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
+
28
35
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
53
36
54
37
blocks :
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
+
55
80
- name : " Linux amd64: Release"
56
81
dependencies : [ ]
57
82
run :
@@ -60,41 +85,125 @@ blocks:
60
85
agent :
61
86
machine :
62
87
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"
72
95
jobs :
73
- - name : " Release"
96
+ - name : " Release: LTS:18 "
74
97
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"
76
101
- npm install # node-pre-gyp will fallback to build here, because new tag implies no release yet.
77
102
- npx node-pre-gyp package
78
103
- 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}"
100
123
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