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_AMD64: Verus-CLI-Linux-v${VERSION}-amd64.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/VerusCoin/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-centos
33 DOCKER_DRIVER: overlay2
34 CONFIGURE_FLAGS: --with-gcc-arch=x86-64
37 key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
41 - scl enable devtoolset-8 sh
42 - source /opt/rh/devtoolset-8/enable
43 - zcutil/build.sh -j$(nproc)
44 - if [ "${STRIP_BINARIES}" = "true" ]; then strip --strip-unneeded src/verus && strip --strip-unneeded src/verusd; fi
48 doc/man/verus-cli/linux/README.txt
49 zcutil/fetch-params.sh
51 - mv verus-cli/fetch-params.sh verus-cli/fetch-params
52 - chmod +x verus-cli/verus
53 - chmod +x verus-cli/verusd
54 - chmod +x verus-cli/fetch-params
55 - tar -czvf ${VERUS_CLI_LINUX_AMD64} verus-cli
56 - sha256sum ${VERUS_CLI_LINUX_AMD64} > ${VERUS_CLI_LINUX_AMD64}.sha256
59 - curl -F file=@"${VERUS_CLI_LINUX_AMD64}"
60 -F channels="${CLI_POST_CHANNEL}"
61 -F initial_comment="${POST_MESSAGE}"
62 -H "${SLACK_BOT_AUTH}"
63 "https://slack.com/api/files.upload"
66 - ${VERUS_CLI_LINUX_AMD64}
67 - ${VERUS_CLI_LINUX_AMD64}.sha256
71 image: asherd/verus-builders:cross-arm
73 DOCKER_DRIVER: overlay2
74 HOST: aarch64-linux-gnu
75 STRIP: /usr/aarch64-linux-gnu/bin/strip
78 key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
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
87 doc/man/verus-cli/linux/README.txt
88 zcutil/fetch-params.sh
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
98 - curl -F file=@"${VERUS_CLI_ARM64_LINUX}"
99 -F channels="${CLI_POST_CHANNEL}"
100 -F initial_comment="${POST_MESSAGE}"
101 -H "${SLACK_BOT_AUTH}"
102 "https://slack.com/api/files.upload"
105 - ${VERUS_CLI_ARM64_LINUX}
106 - ${VERUS_CLI_ARM64_LINUX}.sha256
108 ########################################################################################################################
109 ####END#### LINUX ####END####
110 ########################################################################################################################
111 ####START#### WINDOWS ####START####
112 ########################################################################################################################
114 image: asherd/verus-builders:verus-windows
116 DOCKER_DRIVER: overlay2
117 CONFIGURE_FLAGS: --with-gcc-arch=x86-64
120 key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
124 - zcutil/build-win.sh -j$(nproc)
128 doc/man/verus-cli/windows/README.txt
129 zcutil/fetch-params.bat
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}"
135 -F channels="${CLI_POST_CHANNEL}"
136 -F initial_comment="${POST_MESSAGE}"
137 -H "${SLACK_BOT_AUTH}"
138 "https://slack.com/api/files.upload"
141 - ${VERUS_CLI_WINDOWS}
142 - ${VERUS_CLI_WINDOWS}.sha256
144 ########################################################################################################################
145 ####END#### WINDOWS ####END####
146 ########################################################################################################################
147 ####START#### MACOS ####START####
148 ########################################################################################################################
151 CONFIGURE_FLAGS: --with-gcc-arch=x86-64
155 key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
159 - zcutil/build-mac.sh -j$(sysctl -n hw.physicalcpu)
163 doc/man/verus-cli/mac/README.txt \
164 zcutil/fetch-params.sh \
166 - mv verus-cli/fetch-params.sh verus-cli/fetch-params
167 - chmod +x verus-cli/fetch-params
168 - chmod +x verus-cli/verus
169 - chmod +x verus-cli/verusd
170 - tar -czvf ${VERUS_CLI_MACOS} verus-cli
171 - shasum -a 256 ${VERUS_CLI_MACOS} > ${VERUS_CLI_MACOS}.sha256
172 - curl -F file=@"${VERUS_CLI_MACOS}"
173 -F channels="${CLI_POST_CHANNEL}"
174 -F initial_comment="${POST_MESSAGE}"
175 -H "${SLACK_BOT_AUTH}"
176 "https://slack.com/api/files.upload"
180 - ${VERUS_CLI_MACOS}.sha256
182 ########################################################################################################################
183 ####END#### MACOS ####END####
184 ########################################################################################################################
185 ########################################################################################################################
186 ####END#### Build Stage ####END####
187 ########################################################################################################################
188 ########################################################################################################################
189 ########################################################################################################################
190 ########################################################################################################################
191 ####START#### Test stage: Test functionality of komodo binaries. Produce code quality and SAST reports. ####START####
192 ########################################################################################################################
193 ########################################################################################################################
194 ########################################################################################################################
195 ####START#### Code Quality ####START####
196 ########################################################################################################################
200 DOCKER_DRIVER: overlay2
205 - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
207 --env SOURCE_CODE="$PWD"
208 --volume "$PWD":/code
209 --volume /var/run/docker.sock:/var/run/docker.sock
210 "registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
212 paths: [gl-code-quality-report.json]
213 ########################################################################################################################
214 ####END#### Code Quality ####END####
215 ########################################################################################################################
216 ########################################################################################################################
217 ####START#### Static Application Security Tests ####START####
218 ########################################################################################################################
222 DOCKER_DRIVER: overlay2
227 - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
229 --env SAST_CONFIDENCE_LEVEL="${SAST_CONFIDENCE_LEVEL:-3}"
230 --volume "$PWD:/code"
231 --volume /var/run/docker.sock:/var/run/docker.sock
232 "registry.gitlab.com/gitlab-org/security-products/sast:$SP_VERSION" /app/bin/run /code
234 paths: [gl-sast-report.json]
235 ########################################################################################################################
236 ####END#### Static Application Security Tests ####END####
237 ########################################################################################################################
238 ########################################################################################################################
239 ####START#### Run Verus CLI on Ubuntu Xenial (16.04) ####START####
240 ########################################################################################################################
244 DOCKER_DRIVER: overlay2
247 - apt update && apt install -y wget libgomp1 libcurl4-gnutls-dev python
248 - rm -rf /root/.komodo || true
249 - mv .komodo /root/ || true
251 - tar -xzvf ${VERUS_CLI_LINUX_AMD64}
252 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
253 - python qa/verus-cli-tests/verus-cli-tester.py
255 - mv /root/.komodo ./ || true
264 ########################################################################################################################
265 ####END#### Run Verus CLI on Ubuntu Xenial (16.04) ####END####
266 ########################################################################################################################
267 ########################################################################################################################
268 ####START#### Run Verus CLI on Ubuntu Bionic (18.04) ####START####
269 ########################################################################################################################
273 DOCKER_DRIVER: overlay2
276 - apt update && apt install -y wget libgomp1 libcurl4-gnutls-dev python
277 - rm -rf /root/.komodo || true
278 - mv .komodo /root/ || true
280 - tar -xzvf ${VERUS_CLI_LINUX_AMD64}
281 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
282 - python qa/verus-cli-tests/verus-cli-tester.py
284 - mv /root/.komodo ./ || true
293 ########################################################################################################################
294 ####END#### Run Verus CLI on Ubuntu Bionic (18.04) ####END####
295 ########################################################################################################################
296 ########################################################################################################################
297 ####START#### Run Verus CLI on MacOS Sierra (10.12.6) ####START####
298 ########################################################################################################################
303 - tar -xzvf $VERUS_CLI_MACOS
304 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
305 - python qa/verus-cli-tests/verus-cli-tester.py
311 ########################################################################################################################
312 ####END#### Run Verus CLI on MacOS Sierra (10.12.6) ####END####
313 ########################################################################################################################
314 ########################################################################################################################
315 ####START#### Run Verus CLI on MacOS High Sierra (10.12.6) ####START####
316 ########################################################################################################################
319 tags: ["High Sierra"]
321 - tar -xzvf ${VERUS_CLI_MACOS}
322 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
323 - python qa/verus-cli-tests/verus-cli-tester.py
329 ########################################################################################################################
330 ####START#### Run Verus CLI on MacOS High Sierra (10.12.6) ####START####
331 ########################################################################################################################
332 ########################################################################################################################
333 ####START#### Run Verus CLI on Windows 10 ####START####
334 ########################################################################################################################
339 - PowerShell Expand-Archive -Path %VERUS_CLI_WINDOWS% -DestinationPath %CI_PROJECT_DIR%
340 - set PATH=%PATH%;%CI_PROJECT_DIR%\verus-cli
341 - qa\verus-cli-tests\verus-cli-tester.py
347 ########################################################################################################################
348 ####END#### Run Verus CLI on Windows 10 ####END####
349 ########################################################################################################################
350 ########################################################################################################################
351 ####END#### Test Stage ####END####
352 ########################################################################################################################
353 ########################################################################################################################
354 ####START#### Deploy ####START####
355 ########################################################################################################################
358 image: google/cloud-sdk:alpine
360 DOCKER_DRIVER: overlay2
367 - mkdir Windows && mkdir Linux && mkdir MacOS
368 - cp ${VERUS_CLI_WINDOWS} Windows
369 - cp ${VERUS_CLI_LINUX_AMD64} Linux
370 - cp ${VERUS_CLI_ARM64_LINUX} Linux
371 - cp ${VERUS_CLI_MACOS} MacOS
372 - echo "$AUTH_KEY" > AUTH_KEY.json &&
373 gcloud auth activate-service-account
374 --key-file AUTH_KEY.json
375 - gsutil cp -r Windows MacOS Linux $STAGING/${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}
378 - ${VERUS_CLI_LINUX_AMD64}
379 - ${VERUS_CLI_LINUX_AMD64}.sha256
380 - ${VERUS_CLI_WINDOWS}
381 - ${VERUS_CLI_WINDOWS}.sha256
383 - ${VERUS_CLI_MACOS}.sha256
384 - ${VERUS_CLI_ARM64_LINUX}
385 - ${VERUS_CLI_ARM64_LINUX}.sha256
387 ########################################################################################################################
388 ####END#### Deploy ####END####
389 ########################################################################################################################