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: "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-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-7 sh
42 - source /opt/rh/devtoolset-7/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)
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}"
164 -F channels="${CLI_POST_CHANNEL}"
165 -F initial_comment="${POST_MESSAGE}"
166 -H "${SLACK_BOT_AUTH}"
167 "https://slack.com/api/files.upload"
171 - ${VERUS_CLI_MACOS}.sha256
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 ########################################################################################################################
191 DOCKER_DRIVER: overlay2
196 - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
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
203 paths: [gl-code-quality-report.json]
204 ########################################################################################################################
205 ####END#### Code Quality ####END####
206 ########################################################################################################################
207 ########################################################################################################################
208 ####START#### Static Application Security Tests ####START####
209 ########################################################################################################################
213 DOCKER_DRIVER: overlay2
218 - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
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
225 paths: [gl-sast-report.json]
226 ########################################################################################################################
227 ####END#### Static Application Security Tests ####END####
228 ########################################################################################################################
229 ########################################################################################################################
230 ####START#### Run Verus CLI on Ubuntu Xenial (16.04) ####START####
231 ########################################################################################################################
235 DOCKER_DRIVER: overlay2
238 - apt update && apt install -y wget libgomp1 libcurl4-gnutls-dev python
239 - rm -rf /root/.komodo || true
240 - mv .komodo /root/ || true
242 - tar -xzvf ${VERUS_CLI_LINUX_AMD64}
243 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
244 - python qa/verus-cli-tests/verus-cli-tester.py
246 - mv /root/.komodo ./ || true
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 ########################################################################################################################
264 DOCKER_DRIVER: overlay2
267 - apt update && apt install -y wget libgomp1 libcurl4-gnutls-dev python
268 - rm -rf /root/.komodo || true
269 - mv .komodo /root/ || true
271 - tar -xzvf ${VERUS_CLI_LINUX_AMD64}
272 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
273 - python qa/verus-cli-tests/verus-cli-tester.py
275 - mv /root/.komodo ./ || true
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 ########################################################################################################################
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
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 ########################################################################################################################
310 tags: ["High Sierra"]
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 ####START#### Run Verus CLI on MacOS High Sierra (10.12.6) ####START####
322 ########################################################################################################################
323 ########################################################################################################################
324 ####START#### Run Verus CLI on Windows 10 ####START####
325 ########################################################################################################################
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
338 ########################################################################################################################
339 ####END#### Run Verus CLI on Windows 10 ####END####
340 ########################################################################################################################
341 ########################################################################################################################
342 ####END#### Test Stage ####END####
343 ########################################################################################################################
344 ########################################################################################################################
345 ####START#### Deploy ####START####
346 ########################################################################################################################
349 image: google/cloud-sdk:alpine
351 DOCKER_DRIVER: overlay2
358 - mkdir Windows && mkdir Linux && mkdir MacOS
359 - cp ${VERUS_CLI_WINDOWS} Windows
360 - cp ${VERUS_CLI_LINUX_AMD64} Linux
361 - cp ${VERUS_CLI_ARM64_LINUX} Linux
362 - cp ${VERUS_CLI_MACOS} MacOS
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}
369 - ${VERUS_CLI_LINUX_AMD64}
370 - ${VERUS_CLI_LINUX_AMD64}.sha256
371 - ${VERUS_CLI_WINDOWS}
372 - ${VERUS_CLI_WINDOWS}.sha256
374 - ${VERUS_CLI_MACOS}.sha256
375 - ${VERUS_CLI_ARM64_LINUX}
376 - ${VERUS_CLI_ARM64_LINUX}.sha256
378 ########################################################################################################################
379 ####END#### Deploy ####END####
380 ########################################################################################################################