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
132 - if [ "${STRIP_BINARIES}" = "true" ]; then strip --strip-unneeded verus-cli/verusd.exe && strip --strip-unneeded verus-cli/verus.exe; fi
133 - zip -r ${VERUS_CLI_WINDOWS} verus-cli
134 - sha256sum ${VERUS_CLI_WINDOWS} > ${VERUS_CLI_WINDOWS}.sha256
135 - curl -F file=@"${VERUS_CLI_WINDOWS}"
136 -F channels="${CLI_POST_CHANNEL}"
137 -F initial_comment="${POST_MESSAGE}"
138 -H "${SLACK_BOT_AUTH}"
139 "https://slack.com/api/files.upload"
142 - ${VERUS_CLI_WINDOWS}
143 - ${VERUS_CLI_WINDOWS}.sha256
145 ########################################################################################################################
146 ####END#### WINDOWS ####END####
147 ########################################################################################################################
148 ####START#### MACOS ####START####
149 ########################################################################################################################
152 CONFIGURE_FLAGS: --with-gcc-arch=x86-64
156 key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
160 - zcutil/build-mac.sh -j$(sysctl -n hw.physicalcpu)
161 - ./makeReleaseMac.sh
162 - tar -czvf ${VERUS_CLI_MACOS} verus-cli
163 - shasum -a 256 ${VERUS_CLI_MACOS} > ${VERUS_CLI_MACOS}.sha256
164 - curl -F file=@"${VERUS_CLI_MACOS}"
165 -F channels="${CLI_POST_CHANNEL}"
166 -F initial_comment="${POST_MESSAGE}"
167 -H "${SLACK_BOT_AUTH}"
168 "https://slack.com/api/files.upload"
172 - ${VERUS_CLI_MACOS}.sha256
174 ########################################################################################################################
175 ####END#### MACOS ####END####
176 ########################################################################################################################
177 ########################################################################################################################
178 ####END#### Build Stage ####END####
179 ########################################################################################################################
180 ########################################################################################################################
181 ########################################################################################################################
182 ########################################################################################################################
183 ####START#### Test stage: Test functionality of komodo binaries. Produce code quality and SAST reports. ####START####
184 ########################################################################################################################
185 ########################################################################################################################
186 ########################################################################################################################
187 ####START#### Code Quality ####START####
188 ########################################################################################################################
192 DOCKER_DRIVER: overlay2
197 - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
199 --env SOURCE_CODE="$PWD"
200 --volume "$PWD":/code
201 --volume /var/run/docker.sock:/var/run/docker.sock
202 "registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
204 paths: [gl-code-quality-report.json]
205 ########################################################################################################################
206 ####END#### Code Quality ####END####
207 ########################################################################################################################
208 ########################################################################################################################
209 ####START#### Static Application Security Tests ####START####
210 ########################################################################################################################
214 DOCKER_DRIVER: overlay2
219 - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
221 --env SAST_CONFIDENCE_LEVEL="${SAST_CONFIDENCE_LEVEL:-3}"
222 --volume "$PWD:/code"
223 --volume /var/run/docker.sock:/var/run/docker.sock
224 "registry.gitlab.com/gitlab-org/security-products/sast:$SP_VERSION" /app/bin/run /code
226 paths: [gl-sast-report.json]
227 ########################################################################################################################
228 ####END#### Static Application Security Tests ####END####
229 ########################################################################################################################
230 ########################################################################################################################
231 ####START#### Run Verus CLI on Ubuntu Xenial (16.04) ####START####
232 ########################################################################################################################
236 DOCKER_DRIVER: overlay2
239 - apt update && apt install -y wget libgomp1 libcurl4-gnutls-dev python
240 - rm -rf /root/.komodo || true
241 - mv .komodo /root/ || true
243 - tar -xzvf ${VERUS_CLI_LINUX_AMD64}
244 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
245 - python qa/verus-cli-tests/verus-cli-tester.py
247 - mv /root/.komodo ./ || true
256 ########################################################################################################################
257 ####END#### Run Verus CLI on Ubuntu Xenial (16.04) ####END####
258 ########################################################################################################################
259 ########################################################################################################################
260 ####START#### Run Verus CLI on Ubuntu Bionic (18.04) ####START####
261 ########################################################################################################################
265 DOCKER_DRIVER: overlay2
268 - apt update && apt install -y wget libgomp1 libcurl4-gnutls-dev python
269 - rm -rf /root/.komodo || true
270 - mv .komodo /root/ || true
272 - tar -xzvf ${VERUS_CLI_LINUX_AMD64}
273 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
274 - python qa/verus-cli-tests/verus-cli-tester.py
276 - mv /root/.komodo ./ || true
285 ########################################################################################################################
286 ####END#### Run Verus CLI on Ubuntu Bionic (18.04) ####END####
287 ########################################################################################################################
288 ########################################################################################################################
289 ####START#### Run Verus CLI on MacOS Sierra (10.12.6) ####START####
290 ########################################################################################################################
295 - tar -xzvf $VERUS_CLI_MACOS
296 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
297 - python qa/verus-cli-tests/verus-cli-tester.py
303 ########################################################################################################################
304 ####END#### Run Verus CLI on MacOS Sierra (10.12.6) ####END####
305 ########################################################################################################################
306 ########################################################################################################################
307 ####START#### Run Verus CLI on MacOS High Sierra (10.12.6) ####START####
308 ########################################################################################################################
311 tags: ["High Sierra"]
313 - tar -xzvf ${VERUS_CLI_MACOS}
314 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
315 - python qa/verus-cli-tests/verus-cli-tester.py
321 ########################################################################################################################
322 ####START#### Run Verus CLI on MacOS High Sierra (10.12.6) ####START####
323 ########################################################################################################################
324 ########################################################################################################################
325 ####START#### Run Verus CLI on Windows 10 ####START####
326 ########################################################################################################################
331 - PowerShell Expand-Archive -Path %VERUS_CLI_WINDOWS% -DestinationPath %CI_PROJECT_DIR%
332 - set PATH=%PATH%;%CI_PROJECT_DIR%\verus-cli
333 - qa\verus-cli-tests\verus-cli-tester.py
339 ########################################################################################################################
340 ####END#### Run Verus CLI on Windows 10 ####END####
341 ########################################################################################################################
342 ########################################################################################################################
343 ####END#### Test Stage ####END####
344 ########################################################################################################################
345 ########################################################################################################################
346 ####START#### Deploy ####START####
347 ########################################################################################################################
350 image: google/cloud-sdk:alpine
352 DOCKER_DRIVER: overlay2
359 - mkdir Windows && mkdir Linux && mkdir MacOS
360 - cp ${VERUS_CLI_WINDOWS} Windows
361 - cp ${VERUS_CLI_LINUX_AMD64} Linux
362 - cp ${VERUS_CLI_ARM64_LINUX} Linux
363 - cp ${VERUS_CLI_MACOS} MacOS
364 - echo "$AUTH_KEY" > AUTH_KEY.json &&
365 gcloud auth activate-service-account
366 --key-file AUTH_KEY.json
367 - gsutil cp -r Windows MacOS Linux $STAGING/${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}
369 -F token="$CI_JOB_TOKEN"
370 -F ref="$DOWNSTREAM_AGAMA_BRANCH"
371 -F variables\[UPSTREAM_TRIGGER\]="${CI_PROJECT_NAME}"
372 -F variables\[VERUS_VERSION\]="${VERSION}"
373 -F variables\[UPSTREAM_CLI_BRANCH\]="${CI_COMMIT_REF_NAME}"
374 -F variables\[VERUS_CLI_LINUX_AMD64\]="${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}/Linux/${VERUS_CLI_LINUX_AMD64}"
375 -F variables\[VERUS_CLI_WINDOWS\]="${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}/Windows/${VERUS_CLI_WINDOWS}"
376 -F variables\[VERUS_CLI_MACOS\]="${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}/MacOS/${VERUS_CLI_MACOS}"
377 "https://gitlab.com/api/v4/projects/12539166/trigger/pipeline"
379 -F token="$CI_JOB_TOKEN"
380 -F ref="${CI_COMMIT_REF_NAME}"
381 -F variables\[UPSTREAM_TRIGGER\]="${CI_PROJECT_NAME} ; ${CI_COMMIT_SHA}"
382 -F variables\[VERUS_VERSION\]="${VERSION}"
383 -F variables\[UPSTREAM_CLI_BRANCH\]="${CI_COMMIT_REF_NAME}"
384 -F variables\[VERUS_CLI_LINUX_AMD64\]="${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}/Linux/${VERUS_CLI_LINUX_AMD64}"
385 -F variables\[VERUS_CLI_WINDOWS\]="${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}/Windows/${VERUS_CLI_WINDOWS}"
386 -F variables\[VERUS_CLI_MACOS\]="${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}/MacOS/${VERUS_CLI_MACOS}"
387 "https://gitlab.com/api/v4/projects/16158513/trigger/pipeline"
390 - ${VERUS_CLI_LINUX_AMD64}
391 - ${VERUS_CLI_LINUX_AMD64}.sha256
392 - ${VERUS_CLI_WINDOWS}
393 - ${VERUS_CLI_WINDOWS}.sha256
395 - ${VERUS_CLI_MACOS}.sha256
396 - ${VERUS_CLI_ARM64_LINUX}
397 - ${VERUS_CLI_ARM64_LINUX}.sha256
399 ########################################################################################################################
400 ####END#### Deploy ####END####
401 ########################################################################################################################