@@ -25,33 +25,62 @@ global_job_config:
2525  prologue :
2626    commands :
2727      - checkout 
28+       - sem-version node 18.19.0 
29+       - node --version 
30+       - npm --version 
31+       - npx --version 
32+       - git submodule update --init --recursive 
33+       - cd deps/librdkafka 
34+       - git fetch origin 
35+       - git checkout dev_libdir_fix_for_zstd_zlib 
36+       - cd ../../ 
37+       - export MKL_DEBUG=1 
38+ 
2839
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
5340
5441blocks :
42+   - name : " Linux arm64: Build and test" 
43+     dependencies : [ ] 
44+     task :
45+       agent :
46+         machine :
47+           type : s1-prod-ubuntu20-04-arm64-1 
48+       jobs :
49+         - name : " Build from source and test" 
50+           commands :
51+             - 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.
52+             - make test 
53+ 
54+   - name : ' macOS arm64/m1: Build and test' 
55+     dependencies : [] 
56+     task :
57+       agent :
58+         machine :
59+           type : s1-prod-macos-arm64 
60+       jobs :
61+         - name : ' Build from source and test' 
62+           commands :
63+             - 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.
64+             - make test 
65+ 
66+   - name : " Linux amd64: Build, test, lint" 
67+     dependencies : [ ] 
68+     task :
69+       agent :
70+         machine :
71+           type : s1-prod-ubuntu20-04-amd64-2 
72+       prologue :
73+         commands :
74+           - 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.
75+       jobs :
76+         - name : " Test" 
77+           commands :
78+             - make test 
79+         - name : " ESLint" 
80+           commands :
81+             - npx eslint lib/kafkajs 
82+ 
83+ 
5584  - name : " Linux amd64: Release" 
5685    dependencies : [ ] 
5786    run :
@@ -60,41 +89,66 @@ blocks:
6089      agent :
6190        machine :
6291          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 
92+       env_vars :
93+         - name : ARCHITECTURE 
94+           value : " x64" 
95+         - name : PLATFORM 
96+           value : " linux" 
97+         - name : LIBC 
98+           value : " glibc" 
7299      jobs :
73100        - name : " Release" 
74101          commands :
75-             - export ARTIFACT_KEY="node-librdkafka-${SEMAPHORE_GIT_TAG_NAME}-node-v108-linux-x64 .tar.gz" 
102+             - export ARTIFACT_KEY="node-librdkafka-${SEMAPHORE_GIT_TAG_NAME}-node-v108-${PLATFORM}-${LIBC}-${ARCHITECTURE} .tar.gz" 
76103            - npm install  #  node-pre-gyp will fallback to build here, because new tag implies no release yet.
77104            - npx node-pre-gyp package 
78105            - 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
106+             - artifact push project "build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" --destination "releases/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" 
99107
108+   - name : " Linux arm64: Release" 
109+     dependencies : [ ] 
110+     run :
111+       when : " tag =~ '^v[0-9]\\ .'" 
112+     task :
113+       agent :
114+         machine :
115+           type : s1-prod-ubuntu20-04-arm64-1 
116+       env_vars :
117+         - name : ARCHITECTURE 
118+           value : " arm64" 
119+         - name : PLATFORM 
120+           value : " linux" 
121+         - name : LIBC 
122+           value : " glibc" 
123+       jobs :
124+         - name : " Release" 
125+           commands :
126+             - export ARTIFACT_KEY="node-librdkafka-${SEMAPHORE_GIT_TAG_NAME}-node-v108-${PLATFORM}-${LIBC}-${ARCHITECTURE}.tar.gz" 
127+             - npm install  #  node-pre-gyp will fallback to build here, because new tag implies no release yet.
128+             - npx node-pre-gyp package 
129+             - ls build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY} 
130+             - artifact push project "build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" --destination "releases/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" 
100131
132+   - name : " macOS arm64/m1: Release" 
133+     dependencies : [ ] 
134+     run :
135+       when : " tag =~ '^v[0-9]\\ .'" 
136+     task :
137+       agent :
138+         machine :
139+           type : s1-prod-macos-arm64 
140+       env_vars :
141+         - name : ARCHITECTURE 
142+           value : " arm64" 
143+         - name : PLATFORM 
144+           value : " darwin" 
145+         - name : LIBC 
146+           value : " unknown" 
147+       jobs :
148+         - name : " Release" 
149+           commands :
150+             - export ARTIFACT_KEY="node-librdkafka-${SEMAPHORE_GIT_TAG_NAME}-node-v108-${PLATFORM}-${LIBC}-${ARCHITECTURE}.tar.gz" 
151+             - npm install  #  node-pre-gyp will fallback to build here, because new tag implies no release yet.
152+             - npx node-pre-gyp package 
153+             - ls build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY} 
154+             - artifact push project "build/stage/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" --destination "releases/${SEMAPHORE_GIT_TAG_NAME}/${ARTIFACT_KEY}" 
0 commit comments