5 ########################################################################################################################
6 ####START#### PROJECT LEVEL VARIABLES ####START####
7 ########################################################################################################################
10 VERUS_CLI_ARM64_LINUX: Verus-CLI-Linux-v${VERSION}-arm64.tar.gz
11 VERUS_CLI_LINUX_X86_64: Verus-CLI-Linux-v${VERSION}-x86_64.tar.gz
12 VERUS_CLI_WINDOWS: Verus-CLI-Windows-v${VERSION}.zip
13 VERUS_CLI_MACOS: Verus-CLI-MacOS-v${VERSION}.tar.gz
14 DOWNSTREAM_AGAMA_BRANCH: ${CI_COMMIT_REF_NAME}
15 POST_MESSAGE: "Source: ${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}\n
16 Pipeline Trigger: ${CI_PIPELINE_SOURCE}\n
17 Commit: https://github.com/VerusCoin/${CI_PROJECT_NAME}/commit/${CI_COMMIT_SHA}\n
19 STRIP_BINARIES: "false"
20 ########################################################################################################################
21 ####END#### PROJECT LEVEL VARIABLES ####END####
22 ########################################################################################################################
23 ########################################################################################################################
24 ########################################################################################################################
25 ####START#### Build Stage: compile and package binaries for Verus CLI ####START#####
26 ########################################################################################################################
27 ########################################################################################################################
28 ####START#### LINUX ####START####
29 ########################################################################################################################
31 image: asherd/verus-builders:verus-xenial
33 DOCKER_DRIVER: overlay2
34 CONFIGURE_FLAGS: --with-gcc-arch=x86-64
37 key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
41 - zcutil/build.sh -j$(nproc)
42 - if [ "${STRIP_BINARIES}" = "true" ]; then strip --strip-unneeded src/verus && strip --strip-unneeded src/verusd; fi
46 doc/man/verus-cli/linux/README.txt
47 zcutil/fetch-params.sh
48 vcutil/fetch-bootstrap.sh
50 - mv verus-cli/fetch-params.sh verus-cli/fetch-params
51 - mv verus-cli/fetch-bootstrap.sh verus-cli/fetch-bootstrap
52 - chmod +x verus-cli/verus
53 - chmod +x verus-cli/verusd
54 - chmod +x verus-cli/fetch-params
55 - chmod +x verus-cli/fetch-bootstrap
56 - tar -czvf ${VERUS_CLI_LINUX_X86_64} verus-cli
57 - sha256sum ${VERUS_CLI_LINUX_X86_64} > ${VERUS_CLI_LINUX_X86_64}.sha256
60 - curl -F file=@"${VERUS_CLI_LINUX_X86_64}"
61 -F channels="${CLI_POST_CHANNEL}"
62 -F initial_comment="${POST_MESSAGE}"
63 -H "${SLACK_BOT_AUTH}"
64 "https://slack.com/api/files.upload"
67 - ${VERUS_CLI_LINUX_X86_64}
68 - ${VERUS_CLI_LINUX_X86_64}.sha256
73 image: asherd/verus-builders:cross-arm
75 DOCKER_DRIVER: overlay2
76 HOST: aarch64-linux-gnu
77 STRIP: /usr/aarch64-linux-gnu/bin/strip
80 key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
84 - zcutil/build.sh -j$(nproc)
85 - 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
89 doc/man/verus-cli/linux/README.txt
90 zcutil/fetch-params.sh
91 vcutil/fetch-bootstrap.sh
93 - mv verus-cli/fetch-params.sh verus-cli/fetch-params
94 - mv verus-cli/fetch-bootstrap.sh verus-cli/fetch-bootstrap
95 - chmod +x verus-cli/verus
96 - chmod +x verus-cli/verusd
97 - chmod +x verus-cli/fetch-params
98 - chmod +x verus-cli/fetch-bootstrap
99 - tar -czvf ${VERUS_CLI_ARM64_LINUX} verus-cli
100 - sha256sum ${VERUS_CLI_ARM64_LINUX} > ${VERUS_CLI_ARM64_LINUX}.sha256
103 - curl -F file=@"${VERUS_CLI_ARM64_LINUX}"
104 -F channels="${CLI_POST_CHANNEL}"
105 -F initial_comment="${POST_MESSAGE}"
106 -H "${SLACK_BOT_AUTH}"
107 "https://slack.com/api/files.upload"
110 - ${VERUS_CLI_ARM64_LINUX}
111 - ${VERUS_CLI_ARM64_LINUX}.sha256
113 ########################################################################################################################
114 ####END#### LINUX ####END####
115 ########################################################################################################################
116 ####START#### WINDOWS ####START####
117 ########################################################################################################################
119 image: asherd/verus-builders:verus-windows
121 DOCKER_DRIVER: overlay2
122 CONFIGURE_FLAGS: --with-gcc-arch=x86-64
125 key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
129 - zcutil/build-win.sh -j$(nproc)
133 doc/man/verus-cli/windows/README.txt
134 zcutil/fetch-params.bat
135 vcutil/fetch-bootstrap.bat
137 - if [ "${STRIP_BINARIES}" = "true" ]; then strip --strip-unneeded verus-cli/verusd.exe && strip --strip-unneeded verus-cli/verus.exe; fi
138 - zip -r ${VERUS_CLI_WINDOWS} verus-cli
139 - sha256sum ${VERUS_CLI_WINDOWS} > ${VERUS_CLI_WINDOWS}.sha256
140 - curl -F file=@"${VERUS_CLI_WINDOWS}"
141 -F channels="${CLI_POST_CHANNEL}"
142 -F initial_comment="${POST_MESSAGE}"
143 -H "${SLACK_BOT_AUTH}"
144 "https://slack.com/api/files.upload"
147 - ${VERUS_CLI_WINDOWS}
148 - ${VERUS_CLI_WINDOWS}.sha256
150 ########################################################################################################################
151 ####END#### WINDOWS ####END####
152 ########################################################################################################################
153 ####START#### MACOS ####START####
154 ########################################################################################################################
157 CONFIGURE_FLAGS: --with-gcc-arch=x86-64
161 key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
165 - zcutil/build-mac.sh -j$(sysctl -n hw.physicalcpu)
169 doc/man/verus-cli/mac/README.txt
170 zcutil/fetch-params.sh
171 vcutil/fetch-bootstrap.sh
173 - mv verus-cli/fetch-params.sh verus-cli/fetch-params
174 - mv verus-cli/fetch-bootstrap.sh verus-cli/fetch-bootstrap
175 - chmod +x verus-cli/fetch-params
176 - chmod +x verus-cli/fetch-bootstrap
177 - chmod +x verus-cli/verus
178 - chmod +x verus-cli/verusd
179 - tar -czvf ${VERUS_CLI_MACOS} verus-cli
180 - shasum -a 256 ${VERUS_CLI_MACOS} > ${VERUS_CLI_MACOS}.sha256
181 - curl -F file=@"${VERUS_CLI_MACOS}"
182 -F channels="${CLI_POST_CHANNEL}"
183 -F initial_comment="${POST_MESSAGE}"
184 -H "${SLACK_BOT_AUTH}"
185 "https://slack.com/api/files.upload"
189 - ${VERUS_CLI_MACOS}.sha256
191 ########################################################################################################################
192 ####END#### MACOS ####END####
193 ########################################################################################################################
194 ########################################################################################################################
195 ####END#### Build Stage ####END####
196 ########################################################################################################################
197 ########################################################################################################################
198 ########################################################################################################################
199 ########################################################################################################################
200 ####START#### Test stage: Test functionality of komodo binaries. Produce code quality and SAST reports. ####START####
201 ########################################################################################################################
202 ########################################################################################################################
203 ########################################################################################################################
204 ####START#### Code Quality ####START####
205 ########################################################################################################################
209 DOCKER_DRIVER: overlay2
214 - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
216 --env SOURCE_CODE="$PWD"
217 --volume "$PWD":/code
218 --volume /var/run/docker.sock:/var/run/docker.sock
219 "registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
221 paths: [gl-code-quality-report.json]
222 ########################################################################################################################
223 ####END#### Code Quality ####END####
224 ########################################################################################################################
225 ########################################################################################################################
226 ####START#### Static Application Security Tests ####START####
227 ########################################################################################################################
231 DOCKER_DRIVER: overlay2
236 - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
238 --env SAST_CONFIDENCE_LEVEL="${SAST_CONFIDENCE_LEVEL:-3}"
239 --volume "$PWD:/code"
240 --volume /var/run/docker.sock:/var/run/docker.sock
241 "registry.gitlab.com/gitlab-org/security-products/sast:$SP_VERSION" /app/bin/run /code
243 paths: [gl-sast-report.json]
244 ########################################################################################################################
245 ####END#### Static Application Security Tests ####END####
246 ########################################################################################################################
247 ########################################################################################################################
248 ####START#### Run Verus CLI on Ubuntu Xenial (16.04) ####START####
249 ########################################################################################################################
253 DOCKER_DRIVER: overlay2
256 - apt update && apt install -y wget libgomp1 python
257 - rm -rf /root/.komodo || true
258 - mv .komodo /root/ || true
260 - tar -xzvf ${VERUS_CLI_LINUX_X86_64}
261 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
262 - python qa/verus-cli-tests/verus-cli-tester.py
264 - mv /root/.komodo ./ || true
273 ########################################################################################################################
274 ####END#### Run Verus CLI on Ubuntu Xenial (16.04) ####END####
275 ########################################################################################################################
276 ########################################################################################################################
277 ####START#### Run Verus CLI on Ubuntu Bionic (18.04) ####START####
278 ########################################################################################################################
282 DOCKER_DRIVER: overlay2
285 - apt update && apt install -y wget libgomp1 python
286 - rm -rf /root/.komodo || true
287 - mv .komodo /root/ || true
289 - tar -xzvf ${VERUS_CLI_LINUX_X86_64}
290 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
291 - python qa/verus-cli-tests/verus-cli-tester.py
293 - mv /root/.komodo ./ || true
302 ########################################################################################################################
303 ####END#### Run Verus CLI on Ubuntu Bionic (18.04) ####END####
304 ########################################################################################################################
305 ########################################################################################################################
306 ####START#### Run Verus CLI on MacOS Sierra (10.12.6) ####START####
307 ########################################################################################################################
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
320 ########################################################################################################################
321 ####END#### Run Verus CLI on MacOS Sierra (10.12.6) ####END####
322 ########################################################################################################################
323 ########################################################################################################################
324 ####START#### Run Verus CLI on MacOS High Sierra (10.12.6) ####START####
325 ########################################################################################################################
328 tags: ["High Sierra"]
330 - tar -xzvf ${VERUS_CLI_MACOS}
331 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
332 - python qa/verus-cli-tests/verus-cli-tester.py
338 ########################################################################################################################
339 ####START#### Run Verus CLI on MacOS High Sierra (10.12.6) ####START####
340 ########################################################################################################################
341 ########################################################################################################################
342 ####START#### Run Verus CLI on Windows 10 ####START####
343 ########################################################################################################################
348 - PowerShell Expand-Archive -Path %VERUS_CLI_WINDOWS% -DestinationPath %CI_PROJECT_DIR%
349 - set PATH=%PATH%;%CI_PROJECT_DIR%\verus-cli
350 - qa\verus-cli-tests\verus-cli-tester.py
356 ########################################################################################################################
357 ####END#### Run Verus CLI on Windows 10 ####END####
358 ########################################################################################################################
359 ########################################################################################################################
360 ####END#### Test Stage ####END####
361 ########################################################################################################################
362 ########################################################################################################################
363 ####START#### Deploy ####START####
364 ########################################################################################################################
367 image: google/cloud-sdk:alpine
369 DOCKER_DRIVER: overlay2
376 - mkdir Windows && mkdir Linux && mkdir MacOS
377 - cp ${VERUS_CLI_WINDOWS} Windows
378 - cp ${VERUS_CLI_LINUX_X86_64} Linux
379 - cp ${VERUS_CLI_ARM64_LINUX} Linux
380 - cp ${VERUS_CLI_MACOS} MacOS
381 - echo "$AUTH_KEY" > AUTH_KEY.json &&
382 gcloud auth activate-service-account
383 --key-file AUTH_KEY.json
384 - gsutil cp -r Windows MacOS Linux $STAGING/${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}
387 - ${VERUS_CLI_LINUX_X86_64}
388 - ${VERUS_CLI_LINUX_X86_64}.sha256
389 - ${VERUS_CLI_WINDOWS}
390 - ${VERUS_CLI_WINDOWS}.sha256
392 - ${VERUS_CLI_MACOS}.sha256
393 - ${VERUS_CLI_ARM64_LINUX}
394 - ${VERUS_CLI_ARM64_LINUX}.sha256
396 ########################################################################################################################
397 ####END#### Deploy ####END####
398 ########################################################################################################################