]>
Commit | Line | Data |
---|---|---|
d7fbec21 | 1 | stages: |
8f184a5f A |
2 | - build |
3 | - test | |
4 | - deploy | |
c79ca917 AD |
5 | ######################################################################################################################## |
6 | ####START#### PROJECT LEVEL VARIABLES ####START#### | |
7 | ######################################################################################################################## | |
fd4f2876 | 8 | variables: |
a51c6419 | 9 | VERSION: 0.6.5-dev-4 |
0fbf347a | 10 | VERUS_CLI_ARM64_LINUX: Verus-CLI-Linux-v${VERSION}-arm64.tar.gz |
8d929ca6 | 11 | VERUS_CLI_LINUX_AMD64: Verus-CLI-Linux-v${VERSION}-amd64.tar.gz |
522c4984 AD |
12 | VERUS_CLI_WINDOWS: Verus-CLI-Windows-v${VERSION}.zip |
13 | VERUS_CLI_MACOS: Verus-CLI-MacOS-v${VERSION}.tar.gz | |
c4031206 | 14 | DOWNSTREAM_AGAMA_BRANCH: ${CI_COMMIT_REF_NAME} |
522c4984 AD |
15 | POST_MESSAGE: "Source: ${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}\n |
16 | Pipeline Trigger: ${CI_PIPELINE_SOURCE}\n | |
3971a608 | 17 | Commit: https://github.com/VerusCoin/VerusCoin/commit/${CI_COMMIT_SHA}\n |
522c4984 | 18 | ${CI_COMMIT_MESSAGE}" |
fc7d0b99 | 19 | STRIP_BINARIES: "true" |
8f184a5f | 20 | ######################################################################################################################## |
c79ca917 AD |
21 | ####END#### PROJECT LEVEL VARIABLES ####END#### |
22 | ######################################################################################################################## | |
23 | ######################################################################################################################## | |
24 | ######################################################################################################################## | |
93a59b2f | 25 | ####START#### Build Stage: compile and package binaries for Verus CLI ####START##### |
c79ca917 AD |
26 | ######################################################################################################################## |
27 | ######################################################################################################################## | |
28 | ####START#### LINUX ####START#### | |
29 | ######################################################################################################################## | |
2b198dc7 | 30 | build:linux: |
6d87cb8b | 31 | image: asherd/verus-builders:verus-centos |
2b198dc7 AD |
32 | variables: |
33 | DOCKER_DRIVER: overlay2 | |
8f184a5f | 34 | CONFIGURE_FLAGS: --with-gcc-arch=x86-64 |
2b198dc7 AD |
35 | stage: build |
36 | cache: | |
37 | key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}" | |
38 | paths: | |
8f184a5f | 39 | - depends |
2b198dc7 | 40 | script: |
25dcf869 | 41 | - scl enable devtoolset-7 sh |
42 | - source /opt/rh/devtoolset-7/enable | |
43 | - zcutil/build.sh -j$(nproc) | |
167adf70 | 44 | - if [ "${STRIP_BINARIES}" = "true" ]; then strip --strip-unneeded src/verus && strip --strip-unneeded src/verusd; fi |
25dcf869 | 45 | - mkdir verus-cli |
5915430d | 46 | - cp src/verus |
2b198dc7 AD |
47 | src/verusd |
48 | doc/man/verus-cli/linux/README.txt | |
49 | zcutil/fetch-params.sh | |
50 | verus-cli | |
25dcf869 | 51 | - mv verus-cli/fetch-params.sh verus-cli/fetch-params |
25dcf869 | 52 | - chmod +x verus-cli/verus |
53 | - chmod +x verus-cli/verusd | |
54 | - chmod +x verus-cli/fetch-params | |
8d929ca6 A |
55 | - tar -czvf ${VERUS_CLI_LINUX_AMD64} verus-cli |
56 | - sha256sum ${VERUS_CLI_LINUX_AMD64} > ${VERUS_CLI_LINUX_AMD64}.sha256 | |
d2b491f1 | 57 | - git status |
c4031206 | 58 | after_script: |
8d929ca6 | 59 | - curl -F file=@"${VERUS_CLI_LINUX_AMD64}" |
2b198dc7 | 60 | -F channels="${CLI_POST_CHANNEL}" |
0fbf347a A |
61 | -F initial_comment="${POST_MESSAGE}" |
62 | -H "${SLACK_BOT_AUTH}" | |
63 | "https://slack.com/api/files.upload" | |
64 | artifacts: | |
65 | paths: | |
8d929ca6 A |
66 | - ${VERUS_CLI_LINUX_AMD64} |
67 | - ${VERUS_CLI_LINUX_AMD64}.sha256 | |
0fbf347a A |
68 | expire_in: 1 week |
69 | ||
9ab01dd8 | 70 | build:linux:arm64: |
0fbf347a A |
71 | image: asherd/verus-builders:cross-arm |
72 | variables: | |
73 | DOCKER_DRIVER: overlay2 | |
74 | HOST: aarch64-linux-gnu | |
75 | STRIP: /usr/aarch64-linux-gnu/bin/strip | |
0fbf347a A |
76 | stage: build |
77 | cache: | |
78 | key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}" | |
79 | paths: | |
80 | - depends | |
81 | script: | |
82 | - zcutil/build.sh -j$(nproc) | |
83 | - if [ "${STRIP_BINARIES}" = "true" ]; then /usr/aarch64-linux-gnu/bin/strip --strip-unneeded src/verus && /usr/aarch64-linux-gnu/bin/strip --strip-unneeded src/verusd; fi | |
84 | - mkdir verus-cli | |
85 | - cp src/verus | |
86 | src/verusd | |
87 | doc/man/verus-cli/linux/README.txt | |
88 | zcutil/fetch-params.sh | |
89 | verus-cli | |
90 | - mv verus-cli/fetch-params.sh verus-cli/fetch-params | |
91 | - chmod +x verus-cli/verus | |
92 | - chmod +x verus-cli/verusd | |
93 | - chmod +x verus-cli/fetch-params | |
94 | - tar -czvf ${VERUS_CLI_ARM64_LINUX} verus-cli | |
95 | - sha256sum ${VERUS_CLI_ARM64_LINUX} > ${VERUS_CLI_ARM64_LINUX}.sha256 | |
96 | - git status | |
97 | after_script: | |
98 | - curl -F file=@"${VERUS_CLI_ARM64_LINUX}" | |
99 | -F channels="${CLI_POST_CHANNEL}" | |
2b198dc7 AD |
100 | -F initial_comment="${POST_MESSAGE}" |
101 | -H "${SLACK_BOT_AUTH}" | |
102 | "https://slack.com/api/files.upload" | |
103 | artifacts: | |
104 | paths: | |
69df9b55 A |
105 | - ${VERUS_CLI_ARM64_LINUX} |
106 | - ${VERUS_CLI_ARM64_LINUX}.sha256 | |
2b198dc7 | 107 | expire_in: 1 week |
c79ca917 AD |
108 | ######################################################################################################################## |
109 | ####END#### LINUX ####END#### | |
110 | ######################################################################################################################## | |
111 | ####START#### WINDOWS ####START#### | |
112 | ######################################################################################################################## | |
923d0a70 | 113 | build:windows: |
925f4658 | 114 | image: asherd/verus-builders:verus-windows |
d7fbec21 AD |
115 | variables: |
116 | DOCKER_DRIVER: overlay2 | |
8f184a5f | 117 | CONFIGURE_FLAGS: --with-gcc-arch=x86-64 |
d7fbec21 AD |
118 | stage: build |
119 | cache: | |
c79ca917 | 120 | key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}" |
d7fbec21 | 121 | paths: |
8f184a5f | 122 | - depends |
9892a176 | 123 | script: |
8f184a5f A |
124 | - zcutil/build-win.sh -j$(nproc) |
125 | - mkdir verus-cli | |
126 | - cp src/verus.exe | |
5915430d | 127 | src/verusd.exe |
c79ca917 AD |
128 | doc/man/verus-cli/windows/README.txt |
129 | zcutil/fetch-params.bat | |
c79ca917 | 130 | verus-cli |
8f184a5f A |
131 | - if [ "${STRIP_BINARIES}" = "true" ]; then strip --strip-unneeded verus-cli/verusd.exe && strip --strip-unneeded verus-cli/verus.exe; fi |
132 | - zip -r ${VERUS_CLI_WINDOWS} verus-cli | |
133 | - sha256sum ${VERUS_CLI_WINDOWS} > ${VERUS_CLI_WINDOWS}.sha256 | |
134 | - curl -F file=@"${VERUS_CLI_WINDOWS}" | |
522c4984 AD |
135 | -F channels="${CLI_POST_CHANNEL}" |
136 | -F initial_comment="${POST_MESSAGE}" | |
5ce49ee3 AD |
137 | -H "${SLACK_BOT_AUTH}" |
138 | "https://slack.com/api/files.upload" | |
d7fbec21 | 139 | artifacts: |
522c4984 | 140 | paths: |
8f184a5f A |
141 | - ${VERUS_CLI_WINDOWS} |
142 | - ${VERUS_CLI_WINDOWS}.sha256 | |
d7fbec21 | 143 | expire_in: 1 week |
c79ca917 AD |
144 | ######################################################################################################################## |
145 | ####END#### WINDOWS ####END#### | |
146 | ######################################################################################################################## | |
147 | ####START#### MACOS ####START#### | |
148 | ######################################################################################################################## | |
4266851b | 149 | build:mac: |
8f184a5f A |
150 | variables: |
151 | CONFIGURE_FLAGS: --with-gcc-arch=x86-64 | |
d7fbec21 | 152 | stage: build |
b8c88100 | 153 | tags: ["Mojave"] |
d7fbec21 | 154 | cache: |
c79ca917 | 155 | key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}" |
d7fbec21 | 156 | paths: |
8f184a5f | 157 | - depends |
9892a176 | 158 | script: |
8f184a5f A |
159 | - zcutil/build-mac.sh -j$(sysctl -n hw.physicalcpu) |
160 | - ./makeReleaseMac.sh | |
161 | - tar -czvf ${VERUS_CLI_MACOS} verus-cli | |
162 | - shasum -a 256 ${VERUS_CLI_MACOS} > ${VERUS_CLI_MACOS}.sha256 | |
163 | - curl -F file=@"${VERUS_CLI_MACOS}" | |
522c4984 AD |
164 | -F channels="${CLI_POST_CHANNEL}" |
165 | -F initial_comment="${POST_MESSAGE}" | |
5ce49ee3 AD |
166 | -H "${SLACK_BOT_AUTH}" |
167 | "https://slack.com/api/files.upload" | |
d7fbec21 | 168 | artifacts: |
522c4984 | 169 | paths: |
8f184a5f A |
170 | - ${VERUS_CLI_MACOS} |
171 | - ${VERUS_CLI_MACOS}.sha256 | |
d7fbec21 | 172 | expire_in: 1 week |
c79ca917 AD |
173 | ######################################################################################################################## |
174 | ####END#### MACOS ####END#### | |
175 | ######################################################################################################################## | |
176 | ######################################################################################################################## | |
177 | ####END#### Build Stage ####END#### | |
178 | ######################################################################################################################## | |
179 | ######################################################################################################################## | |
180 | ######################################################################################################################## | |
181 | ######################################################################################################################## | |
182 | ####START#### Test stage: Test functionality of komodo binaries. Produce code quality and SAST reports. ####START#### | |
183 | ######################################################################################################################## | |
184 | ######################################################################################################################## | |
185 | ######################################################################################################################## | |
186 | ####START#### Code Quality ####START#### | |
187 | ######################################################################################################################## | |
bc0232a1 | 188 | .code_quality: |
9892a176 AD |
189 | image: docker:stable |
190 | variables: | |
191 | DOCKER_DRIVER: overlay2 | |
192 | allow_failure: true | |
193 | services: | |
8f184a5f | 194 | - docker:stable-dind |
9892a176 | 195 | script: |
8f184a5f A |
196 | - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/') |
197 | - docker run | |
46d858be AD |
198 | --env SOURCE_CODE="$PWD" |
199 | --volume "$PWD":/code | |
200 | --volume /var/run/docker.sock:/var/run/docker.sock | |
201 | "registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code | |
9892a176 AD |
202 | artifacts: |
203 | paths: [gl-code-quality-report.json] | |
c79ca917 AD |
204 | ######################################################################################################################## |
205 | ####END#### Code Quality ####END#### | |
206 | ######################################################################################################################## | |
207 | ######################################################################################################################## | |
208 | ####START#### Static Application Security Tests ####START#### | |
209 | ######################################################################################################################## | |
bc0232a1 | 210 | .sast: |
9892a176 AD |
211 | image: docker:stable |
212 | variables: | |
213 | DOCKER_DRIVER: overlay2 | |
214 | allow_failure: true | |
215 | services: | |
8f184a5f | 216 | - docker:stable-dind |
9892a176 | 217 | script: |
8f184a5f A |
218 | - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/') |
219 | - docker run | |
46d858be AD |
220 | --env SAST_CONFIDENCE_LEVEL="${SAST_CONFIDENCE_LEVEL:-3}" |
221 | --volume "$PWD:/code" | |
222 | --volume /var/run/docker.sock:/var/run/docker.sock | |
223 | "registry.gitlab.com/gitlab-org/security-products/sast:$SP_VERSION" /app/bin/run /code | |
9892a176 AD |
224 | artifacts: |
225 | paths: [gl-sast-report.json] | |
c79ca917 AD |
226 | ######################################################################################################################## |
227 | ####END#### Static Application Security Tests ####END#### | |
228 | ######################################################################################################################## | |
229 | ######################################################################################################################## | |
230 | ####START#### Run Verus CLI on Ubuntu Xenial (16.04) ####START#### | |
231 | ######################################################################################################################## | |
bc0232a1 | 232 | .ubuntu:xenial: |
e7f4832f AD |
233 | image: ubuntu:xenial |
234 | variables: | |
235 | DOCKER_DRIVER: overlay2 | |
236 | stage: test | |
237 | before_script: | |
8f184a5f A |
238 | - apt update && apt install -y wget libgomp1 libcurl4-gnutls-dev python |
239 | - rm -rf /root/.komodo || true | |
240 | - mv .komodo /root/ || true | |
e7f4832f | 241 | script: |
8d929ca6 | 242 | - tar -xzvf ${VERUS_CLI_LINUX_AMD64} |
8f184a5f A |
243 | - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli |
244 | - python qa/verus-cli-tests/verus-cli-tester.py | |
81b6f9a5 | 245 | after_script: |
8f184a5f | 246 | - mv /root/.komodo ./ || true |
81b6f9a5 AD |
247 | cache: |
248 | key: ${CI_JOB_NAME} | |
249 | paths: [.komodo] | |
e7f4832f AD |
250 | artifacts: |
251 | paths: [log.txt] | |
252 | expire_in: 1 week | |
253 | dependencies: | |
8f184a5f | 254 | - build:linux |
c79ca917 AD |
255 | ######################################################################################################################## |
256 | ####END#### Run Verus CLI on Ubuntu Xenial (16.04) ####END#### | |
257 | ######################################################################################################################## | |
258 | ######################################################################################################################## | |
259 | ####START#### Run Verus CLI on Ubuntu Bionic (18.04) ####START#### | |
260 | ######################################################################################################################## | |
bc0232a1 | 261 | .ubuntu:bionic: |
e7f4832f AD |
262 | image: ubuntu:bionic |
263 | variables: | |
264 | DOCKER_DRIVER: overlay2 | |
265 | stage: test | |
266 | before_script: | |
8f184a5f A |
267 | - apt update && apt install -y wget libgomp1 libcurl4-gnutls-dev python |
268 | - rm -rf /root/.komodo || true | |
269 | - mv .komodo /root/ || true | |
e7f4832f | 270 | script: |
8d929ca6 | 271 | - tar -xzvf ${VERUS_CLI_LINUX_AMD64} |
8f184a5f A |
272 | - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli |
273 | - python qa/verus-cli-tests/verus-cli-tester.py | |
81b6f9a5 | 274 | after_script: |
8f184a5f | 275 | - mv /root/.komodo ./ || true |
81b6f9a5 AD |
276 | cache: |
277 | key: ${CI_JOB_NAME} | |
278 | paths: [.komodo] | |
e7f4832f AD |
279 | artifacts: |
280 | paths: [log.txt] | |
281 | expire_in: 1 week | |
282 | dependencies: | |
8f184a5f | 283 | - build:linux |
c79ca917 AD |
284 | ######################################################################################################################## |
285 | ####END#### Run Verus CLI on Ubuntu Bionic (18.04) ####END#### | |
286 | ######################################################################################################################## | |
287 | ######################################################################################################################## | |
288 | ####START#### Run Verus CLI on MacOS Sierra (10.12.6) ####START#### | |
289 | ######################################################################################################################## | |
290 | .macos:sierra: | |
e7f4832f AD |
291 | stage: test |
292 | tags: ["Sierra"] | |
293 | script: | |
8f184a5f A |
294 | - tar -xzvf $VERUS_CLI_MACOS |
295 | - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli | |
296 | - python qa/verus-cli-tests/verus-cli-tester.py | |
e7f4832f AD |
297 | artifacts: |
298 | paths: [log.txt] | |
299 | expire_in: 1 week | |
300 | dependencies: | |
8f184a5f | 301 | - build:mac |
c79ca917 AD |
302 | ######################################################################################################################## |
303 | ####END#### Run Verus CLI on MacOS Sierra (10.12.6) ####END#### | |
304 | ######################################################################################################################## | |
305 | ######################################################################################################################## | |
306 | ####START#### Run Verus CLI on MacOS High Sierra (10.12.6) ####START#### | |
307 | ######################################################################################################################## | |
522c4984 | 308 | .macos:high-sierra: |
e7f4832f AD |
309 | stage: test |
310 | tags: ["High Sierra"] | |
311 | script: | |
8f184a5f A |
312 | - tar -xzvf ${VERUS_CLI_MACOS} |
313 | - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli | |
314 | - python qa/verus-cli-tests/verus-cli-tester.py | |
e7f4832f AD |
315 | artifacts: |
316 | paths: [log.txt] | |
317 | expire_in: 1 week | |
318 | dependencies: | |
8f184a5f | 319 | - build:mac |
c79ca917 AD |
320 | ######################################################################################################################## |
321 | ####START#### Run Verus CLI on MacOS High Sierra (10.12.6) ####START#### | |
322 | ######################################################################################################################## | |
323 | ######################################################################################################################## | |
324 | ####START#### Run Verus CLI on Windows 10 ####START#### | |
325 | ######################################################################################################################## | |
4474ce24 | 326 | .windows:10: |
e7f4832f AD |
327 | stage: test |
328 | tags: ["Windows 10"] | |
329 | script: | |
8f184a5f A |
330 | - PowerShell Expand-Archive -Path %VERUS_CLI_WINDOWS% -DestinationPath %CI_PROJECT_DIR% |
331 | - set PATH=%PATH%;%CI_PROJECT_DIR%\verus-cli | |
332 | - qa\verus-cli-tests\verus-cli-tester.py | |
e7f4832f AD |
333 | artifacts: |
334 | paths: [log.txt] | |
335 | expire_in: 1 week | |
336 | dependencies: | |
8f184a5f | 337 | - build:windows |
c79ca917 AD |
338 | ######################################################################################################################## |
339 | ####END#### Run Verus CLI on Windows 10 ####END#### | |
340 | ######################################################################################################################## | |
341 | ######################################################################################################################## | |
342 | ####END#### Test Stage ####END#### | |
343 | ######################################################################################################################## | |
344 | ######################################################################################################################## | |
345 | ####START#### Deploy ####START#### | |
346 | ######################################################################################################################## | |
5ce49ee3 | 347 | deploy: |
e96d89da AD |
348 | stage: deploy |
349 | image: google/cloud-sdk:alpine | |
350 | variables: | |
351 | DOCKER_DRIVER: overlay2 | |
352 | dependencies: | |
8f184a5f | 353 | - build:linux |
923d0a70 | 354 | - build:windows |
8f184a5f | 355 | - build:mac |
9ab01dd8 | 356 | - build:linux:arm64 |
0af1486c | 357 | script: |
65d2bc89 A |
358 | - mkdir Windows && mkdir Linux && mkdir MacOS |
359 | - cp ${VERUS_CLI_WINDOWS} Windows | |
360 | - cp ${VERUS_CLI_LINUX_AMD64} Linux | |
aa00eeab | 361 | - cp ${VERUS_CLI_ARM64_LINUX} Linux |
65d2bc89 | 362 | - cp ${VERUS_CLI_MACOS} MacOS |
8f184a5f A |
363 | - echo "$AUTH_KEY" > AUTH_KEY.json && |
364 | gcloud auth activate-service-account | |
365 | --key-file AUTH_KEY.json | |
366 | - gsutil cp -r Windows MacOS Linux $STAGING/${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME} | |
0d4928b2 A |
367 | artifacts: |
368 | paths: | |
8d929ca6 A |
369 | - ${VERUS_CLI_LINUX_AMD64} |
370 | - ${VERUS_CLI_LINUX_AMD64}.sha256 | |
923d0a70 AD |
371 | - ${VERUS_CLI_WINDOWS} |
372 | - ${VERUS_CLI_WINDOWS}.sha256 | |
0d4928b2 A |
373 | - ${VERUS_CLI_MACOS} |
374 | - ${VERUS_CLI_MACOS}.sha256 | |
9ab01dd8 A |
375 | - ${VERUS_CLI_ARM64_LINUX} |
376 | - ${VERUS_CLI_ARM64_LINUX}.sha256 | |
0d4928b2 | 377 | expire_in: 1 week |
c79ca917 AD |
378 | ######################################################################################################################## |
379 | ####END#### Deploy ####END#### | |
8f184a5f | 380 | ######################################################################################################################## |