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/${CI_PROJECT_NAME}/commit/${CI_COMMIT_SHA}\n
19 STRIP_BINARIES: "true"
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
49 - mv verus-cli/fetch-params.sh verus-cli/fetch-params
50 - chmod +x verus-cli/verus
51 - chmod +x verus-cli/verusd
52 - chmod +x verus-cli/fetch-params
53 - tar -czvf ${VERUS_CLI_LINUX_AMD64} verus-cli
54 - sha256sum ${VERUS_CLI_LINUX_AMD64} > ${VERUS_CLI_LINUX_AMD64}.sha256
57 - curl -F file=@"${VERUS_CLI_LINUX_AMD64}"
58 -F channels="${CLI_POST_CHANNEL}"
59 -F initial_comment="${POST_MESSAGE}"
60 -H "${SLACK_BOT_AUTH}"
61 "https://slack.com/api/files.upload"
64 - ${VERUS_CLI_LINUX_AMD64}
65 - ${VERUS_CLI_LINUX_AMD64}.sha256
70 image: asherd/verus-builders:cross-arm
72 DOCKER_DRIVER: overlay2
73 HOST: aarch64-linux-gnu
74 STRIP: /usr/aarch64-linux-gnu/bin/strip
77 key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
81 - zcutil/build.sh -j$(nproc)
82 - 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
86 doc/man/verus-cli/linux/README.txt
87 zcutil/fetch-params.sh
89 - mv verus-cli/fetch-params.sh verus-cli/fetch-params
90 - chmod +x verus-cli/verus
91 - chmod +x verus-cli/verusd
92 - chmod +x verus-cli/fetch-params
93 - tar -czvf ${VERUS_CLI_ARM64_LINUX} verus-cli
94 - sha256sum ${VERUS_CLI_ARM64_LINUX} > ${VERUS_CLI_ARM64_LINUX}.sha256
97 - curl -F file=@"${VERUS_CLI_ARM64_LINUX}"
98 -F channels="${CLI_POST_CHANNEL}"
99 -F initial_comment="${POST_MESSAGE}"
100 -H "${SLACK_BOT_AUTH}"
101 "https://slack.com/api/files.upload"
104 - ${VERUS_CLI_ARM64_LINUX}
105 - ${VERUS_CLI_ARM64_LINUX}.sha256
107 ########################################################################################################################
108 ####END#### LINUX ####END####
109 ########################################################################################################################
110 ####START#### WINDOWS ####START####
111 ########################################################################################################################
113 image: asherd/verus-builders:verus-windows
115 DOCKER_DRIVER: overlay2
116 CONFIGURE_FLAGS: --with-gcc-arch=x86-64
119 key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
123 - zcutil/build-win.sh -j$(nproc)
127 doc/man/verus-cli/windows/README.txt
128 zcutil/fetch-params.bat
130 - if [ "${STRIP_BINARIES}" = "true" ]; then strip --strip-unneeded verus-cli/verusd.exe && strip --strip-unneeded verus-cli/verus.exe; fi
131 - zip -r ${VERUS_CLI_WINDOWS} verus-cli
132 - sha256sum ${VERUS_CLI_WINDOWS} > ${VERUS_CLI_WINDOWS}.sha256
133 - curl -F file=@"${VERUS_CLI_WINDOWS}"
134 -F channels="${CLI_POST_CHANNEL}"
135 -F initial_comment="${POST_MESSAGE}"
136 -H "${SLACK_BOT_AUTH}"
137 "https://slack.com/api/files.upload"
140 - ${VERUS_CLI_WINDOWS}
141 - ${VERUS_CLI_WINDOWS}.sha256
143 ########################################################################################################################
144 ####END#### WINDOWS ####END####
145 ########################################################################################################################
146 ####START#### MACOS ####START####
147 ########################################################################################################################
150 CONFIGURE_FLAGS: --with-gcc-arch=x86-64
154 key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
158 - zcutil/build-mac.sh -j$(sysctl -n hw.physicalcpu)
162 doc/man/verus-cli/mac/README.txt
163 zcutil/fetch-params.sh
165 - mv verus-cli/fetch-params.sh verus-cli/fetch-params
166 - chmod +x verus-cli/fetch-params
167 - chmod +x verus-cli/verus
168 - chmod +x verus-cli/verusd
169 - tar -czvf ${VERUS_CLI_MACOS} verus-cli
170 - shasum -a 256 ${VERUS_CLI_MACOS} > ${VERUS_CLI_MACOS}.sha256
171 - curl -F file=@"${VERUS_CLI_MACOS}"
172 -F channels="${CLI_POST_CHANNEL}"
173 -F initial_comment="${POST_MESSAGE}"
174 -H "${SLACK_BOT_AUTH}"
175 "https://slack.com/api/files.upload"
179 - ${VERUS_CLI_MACOS}.sha256
181 ########################################################################################################################
182 ####END#### MACOS ####END####
183 ########################################################################################################################
184 ########################################################################################################################
185 ####END#### Build Stage ####END####
186 ########################################################################################################################
187 ########################################################################################################################
188 ########################################################################################################################
189 ########################################################################################################################
190 ####START#### Test stage: Test functionality of komodo binaries. Produce code quality and SAST reports. ####START####
191 ########################################################################################################################
192 ########################################################################################################################
193 ########################################################################################################################
194 ####START#### Code Quality ####START####
195 ########################################################################################################################
199 DOCKER_DRIVER: overlay2
204 - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
206 --env SOURCE_CODE="$PWD"
207 --volume "$PWD":/code
208 --volume /var/run/docker.sock:/var/run/docker.sock
209 "registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
211 paths: [gl-code-quality-report.json]
212 ########################################################################################################################
213 ####END#### Code Quality ####END####
214 ########################################################################################################################
215 ########################################################################################################################
216 ####START#### Static Application Security Tests ####START####
217 ########################################################################################################################
221 DOCKER_DRIVER: overlay2
226 - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
228 --env SAST_CONFIDENCE_LEVEL="${SAST_CONFIDENCE_LEVEL:-3}"
229 --volume "$PWD:/code"
230 --volume /var/run/docker.sock:/var/run/docker.sock
231 "registry.gitlab.com/gitlab-org/security-products/sast:$SP_VERSION" /app/bin/run /code
233 paths: [gl-sast-report.json]
234 ########################################################################################################################
235 ####END#### Static Application Security Tests ####END####
236 ########################################################################################################################
237 ########################################################################################################################
238 ####START#### Run Verus CLI on Ubuntu Xenial (16.04) ####START####
239 ########################################################################################################################
243 DOCKER_DRIVER: overlay2
246 - apt update && apt install -y wget libgomp1 python
247 - rm -rf /root/.komodo || true
248 - mv .komodo /root/ || true
250 - tar -xzvf ${VERUS_CLI_LINUX_AMD64}
251 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
252 - python qa/verus-cli-tests/verus-cli-tester.py
254 - mv /root/.komodo ./ || true
263 ########################################################################################################################
264 ####END#### Run Verus CLI on Ubuntu Xenial (16.04) ####END####
265 ########################################################################################################################
266 ########################################################################################################################
267 ####START#### Run Verus CLI on Ubuntu Bionic (18.04) ####START####
268 ########################################################################################################################
272 DOCKER_DRIVER: overlay2
275 - apt update && apt install -y wget libgomp1 python
276 - rm -rf /root/.komodo || true
277 - mv .komodo /root/ || true
279 - tar -xzvf ${VERUS_CLI_LINUX_AMD64}
280 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
281 - python qa/verus-cli-tests/verus-cli-tester.py
283 - mv /root/.komodo ./ || true
292 ########################################################################################################################
293 ####END#### Run Verus CLI on Ubuntu Bionic (18.04) ####END####
294 ########################################################################################################################
295 ########################################################################################################################
296 ####START#### Run Verus CLI on MacOS Sierra (10.12.6) ####START####
297 ########################################################################################################################
302 - tar -xzvf $VERUS_CLI_MACOS
303 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
304 - python qa/verus-cli-tests/verus-cli-tester.py
310 ########################################################################################################################
311 ####END#### Run Verus CLI on MacOS Sierra (10.12.6) ####END####
312 ########################################################################################################################
313 ########################################################################################################################
314 ####START#### Run Verus CLI on MacOS High Sierra (10.12.6) ####START####
315 ########################################################################################################################
318 tags: ["High Sierra"]
320 - tar -xzvf ${VERUS_CLI_MACOS}
321 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
322 - python qa/verus-cli-tests/verus-cli-tester.py
328 ########################################################################################################################
329 ####START#### Run Verus CLI on MacOS High Sierra (10.12.6) ####START####
330 ########################################################################################################################
331 ########################################################################################################################
332 ####START#### Run Verus CLI on Windows 10 ####START####
333 ########################################################################################################################
338 - PowerShell Expand-Archive -Path %VERUS_CLI_WINDOWS% -DestinationPath %CI_PROJECT_DIR%
339 - set PATH=%PATH%;%CI_PROJECT_DIR%\verus-cli
340 - qa\verus-cli-tests\verus-cli-tester.py
346 ########################################################################################################################
347 ####END#### Run Verus CLI on Windows 10 ####END####
348 ########################################################################################################################
349 ########################################################################################################################
350 ####END#### Test Stage ####END####
351 ########################################################################################################################
352 ########################################################################################################################
353 ####START#### Deploy ####START####
354 ########################################################################################################################
357 image: google/cloud-sdk:alpine
359 DOCKER_DRIVER: overlay2
366 - mkdir Windows && mkdir Linux && mkdir MacOS
367 - cp ${VERUS_CLI_WINDOWS} Windows
368 - cp ${VERUS_CLI_LINUX_AMD64} Linux
369 - cp ${VERUS_CLI_ARM64_LINUX} Linux
370 - cp ${VERUS_CLI_MACOS} MacOS
371 - echo "$AUTH_KEY" > AUTH_KEY.json &&
372 gcloud auth activate-service-account
373 --key-file AUTH_KEY.json
374 - gsutil cp -r Windows MacOS Linux $STAGING/${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}
377 - ${VERUS_CLI_LINUX_AMD64}
378 - ${VERUS_CLI_LINUX_AMD64}.sha256
379 - ${VERUS_CLI_WINDOWS}
380 - ${VERUS_CLI_WINDOWS}.sha256
382 - ${VERUS_CLI_MACOS}.sha256
383 - ${VERUS_CLI_ARM64_LINUX}
384 - ${VERUS_CLI_ARM64_LINUX}.sha256
386 ########################################################################################################################
387 ####END#### Deploy ####END####
388 ########################################################################################################################