@@ -25,33 +25,62 @@ global_job_config:
25
25
prologue :
26
26
commands :
27
27
- 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
+
28
39
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
40
54
41
blocks :
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
+
55
84
- name : " Linux amd64: Release"
56
85
dependencies : [ ]
57
86
run :
@@ -60,41 +89,66 @@ blocks:
60
89
agent :
61
90
machine :
62
91
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"
72
99
jobs :
73
100
- name : " Release"
74
101
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"
76
103
- npm install # node-pre-gyp will fallback to build here, because new tag implies no release yet.
77
104
- npx node-pre-gyp package
78
105
- 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}"
99
107
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}"
100
131
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