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: 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
35 CONFIGURE_FLAGS: --with-gcc-arch=x86-64
38 key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
42 - scl enable devtoolset-7 sh
43 - source /opt/rh/devtoolset-7/enable
44 - zcutil/build.sh -j$(nproc)
45 - if [ "${STRIP_BINARIES}" = "true" ]; then strip --strip-unneeded src/verus && strip --strip-unneeded src/verusd; fi
49 doc/man/verus-cli/linux/README.txt
50 zcutil/fetch-params.sh
52 - mv verus-cli/fetch-params.sh verus-cli/fetch-params
53 - chmod +x verus-cli/verus
54 - chmod +x verus-cli/verusd
55 - chmod +x verus-cli/fetch-params
56 - tar -czvf ${VERUS_CLI_LINUX} verus-cli
57 - sha256sum ${VERUS_CLI_LINUX} > ${VERUS_CLI_LINUX}.sha256
60 - curl -F file=@"${VERUS_CLI_LINUX}"
61 -F channels="${CLI_POST_CHANNEL}"
62 -F initial_comment="${POST_MESSAGE}"
63 -H "${SLACK_BOT_AUTH}"
64 "https://slack.com/api/files.upload"
68 - ${VERUS_CLI_LINUX}.sha256
72 image: asherd/verus-builders:cross-arm
74 DOCKER_DRIVER: overlay2
75 HOST: aarch64-linux-gnu
76 STRIP: /usr/aarch64-linux-gnu/bin/strip
78 CXX: g++-8-aarch64-linux-gnu
79 CC: gcc-8-aarch64-linux-gnu
82 key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
86 - zcutil/build.sh -j$(nproc)
87 - 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
91 doc/man/verus-cli/linux/README.txt
92 zcutil/fetch-params.sh
94 - mv verus-cli/fetch-params.sh verus-cli/fetch-params
95 - chmod +x verus-cli/verus
96 - chmod +x verus-cli/verusd
97 - chmod +x verus-cli/fetch-params
98 - tar -czvf ${VERUS_CLI_ARM64_LINUX} verus-cli
99 - sha256sum ${VERUS_CLI_ARM64_LINUX} > ${VERUS_CLI_ARM64_LINUX}.sha256
102 - curl -F file=@"${VERUS_CLI_ARM64_LINUX}"
103 -F channels="${CLI_POST_CHANNEL}"
104 -F initial_comment="${POST_MESSAGE}"
105 -H "${SLACK_BOT_AUTH}"
106 "https://slack.com/api/files.upload"
109 - ${VERUS_CLI_ARM64_LINUX}
110 - ${VERUS_CLI_ARM64_LINUX}.sha256
112 ########################################################################################################################
113 ####END#### LINUX ####END####
114 ########################################################################################################################
115 ####START#### WINDOWS ####START####
116 ########################################################################################################################
118 image: asherd/verus-builders:verus-windows
120 DOCKER_DRIVER: overlay2
121 CONFIGURE_FLAGS: --with-gcc-arch=x86-64
124 key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
128 - zcutil/build-win.sh -j$(nproc)
132 doc/man/verus-cli/windows/README.txt
133 zcutil/fetch-params.bat
136 - if [ "${STRIP_BINARIES}" = "true" ]; then strip --strip-unneeded verus-cli/verusd.exe && strip --strip-unneeded verus-cli/verus.exe; fi
137 - zip -r ${VERUS_CLI_WINDOWS} verus-cli
138 - sha256sum ${VERUS_CLI_WINDOWS} > ${VERUS_CLI_WINDOWS}.sha256
139 - curl -F file=@"${VERUS_CLI_WINDOWS}"
140 -F channels="${CLI_POST_CHANNEL}"
141 -F initial_comment="${POST_MESSAGE}"
142 -H "${SLACK_BOT_AUTH}"
143 "https://slack.com/api/files.upload"
146 - ${VERUS_CLI_WINDOWS}
147 - ${VERUS_CLI_WINDOWS}.sha256
149 ########################################################################################################################
150 ####END#### WINDOWS ####END####
151 ########################################################################################################################
152 ####START#### MACOS ####START####
153 ########################################################################################################################
156 CONFIGURE_FLAGS: --with-gcc-arch=x86-64
160 key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
164 - zcutil/build-mac.sh -j$(sysctl -n hw.physicalcpu)
165 - ./makeReleaseMac.sh
166 - tar -czvf ${VERUS_CLI_MACOS} verus-cli
167 - shasum -a 256 ${VERUS_CLI_MACOS} > ${VERUS_CLI_MACOS}.sha256
168 - curl -F file=@"${VERUS_CLI_MACOS}"
169 -F channels="${CLI_POST_CHANNEL}"
170 -F initial_comment="${POST_MESSAGE}"
171 -H "${SLACK_BOT_AUTH}"
172 "https://slack.com/api/files.upload"
176 - ${VERUS_CLI_MACOS}.sha256
178 ########################################################################################################################
179 ####END#### MACOS ####END####
180 ########################################################################################################################
181 ########################################################################################################################
182 ####END#### Build Stage ####END####
183 ########################################################################################################################
184 ########################################################################################################################
185 ########################################################################################################################
186 ########################################################################################################################
187 ####START#### Test stage: Test functionality of komodo binaries. Produce code quality and SAST reports. ####START####
188 ########################################################################################################################
189 ########################################################################################################################
190 ########################################################################################################################
191 ####START#### Code Quality ####START####
192 ########################################################################################################################
196 DOCKER_DRIVER: overlay2
201 - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
203 --env SOURCE_CODE="$PWD"
204 --volume "$PWD":/code
205 --volume /var/run/docker.sock:/var/run/docker.sock
206 "registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
208 paths: [gl-code-quality-report.json]
209 ########################################################################################################################
210 ####END#### Code Quality ####END####
211 ########################################################################################################################
212 ########################################################################################################################
213 ####START#### Static Application Security Tests ####START####
214 ########################################################################################################################
218 DOCKER_DRIVER: overlay2
223 - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
225 --env SAST_CONFIDENCE_LEVEL="${SAST_CONFIDENCE_LEVEL:-3}"
226 --volume "$PWD:/code"
227 --volume /var/run/docker.sock:/var/run/docker.sock
228 "registry.gitlab.com/gitlab-org/security-products/sast:$SP_VERSION" /app/bin/run /code
230 paths: [gl-sast-report.json]
231 ########################################################################################################################
232 ####END#### Static Application Security Tests ####END####
233 ########################################################################################################################
234 ########################################################################################################################
235 ####START#### Run Verus CLI on Ubuntu Xenial (16.04) ####START####
236 ########################################################################################################################
240 DOCKER_DRIVER: overlay2
243 - apt update && apt install -y wget libgomp1 libcurl4-gnutls-dev python
244 - rm -rf /root/.komodo || true
245 - mv .komodo /root/ || true
247 - tar -xzvf ${VERUS_CLI_LINUX}
248 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
249 - python qa/verus-cli-tests/verus-cli-tester.py
251 - mv /root/.komodo ./ || true
260 ########################################################################################################################
261 ####END#### Run Verus CLI on Ubuntu Xenial (16.04) ####END####
262 ########################################################################################################################
263 ########################################################################################################################
264 ####START#### Run Verus CLI on Ubuntu Bionic (18.04) ####START####
265 ########################################################################################################################
269 DOCKER_DRIVER: overlay2
272 - apt update && apt install -y wget libgomp1 libcurl4-gnutls-dev python
273 - rm -rf /root/.komodo || true
274 - mv .komodo /root/ || true
276 - tar -xzvf ${VERUS_CLI_LINUX}
277 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
278 - python qa/verus-cli-tests/verus-cli-tester.py
280 - mv /root/.komodo ./ || true
289 ########################################################################################################################
290 ####END#### Run Verus CLI on Ubuntu Bionic (18.04) ####END####
291 ########################################################################################################################
292 ########################################################################################################################
293 ####START#### Run Verus CLI on MacOS Sierra (10.12.6) ####START####
294 ########################################################################################################################
299 - tar -xzvf $VERUS_CLI_MACOS
300 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
301 - python qa/verus-cli-tests/verus-cli-tester.py
307 ########################################################################################################################
308 ####END#### Run Verus CLI on MacOS Sierra (10.12.6) ####END####
309 ########################################################################################################################
310 ########################################################################################################################
311 ####START#### Run Verus CLI on MacOS High Sierra (10.12.6) ####START####
312 ########################################################################################################################
315 tags: ["High Sierra"]
317 - tar -xzvf ${VERUS_CLI_MACOS}
318 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
319 - python qa/verus-cli-tests/verus-cli-tester.py
325 ########################################################################################################################
326 ####START#### Run Verus CLI on MacOS High Sierra (10.12.6) ####START####
327 ########################################################################################################################
328 ########################################################################################################################
329 ####START#### Run Verus CLI on Windows 10 ####START####
330 ########################################################################################################################
335 - PowerShell Expand-Archive -Path %VERUS_CLI_WINDOWS% -DestinationPath %CI_PROJECT_DIR%
336 - set PATH=%PATH%;%CI_PROJECT_DIR%\verus-cli
337 - qa\verus-cli-tests\verus-cli-tester.py
343 ########################################################################################################################
344 ####END#### Run Verus CLI on Windows 10 ####END####
345 ########################################################################################################################
346 ########################################################################################################################
347 ####END#### Test Stage ####END####
348 ########################################################################################################################
349 ########################################################################################################################
350 ####START#### Deploy ####START####
351 ########################################################################################################################
354 image: google/cloud-sdk:alpine
356 DOCKER_DRIVER: overlay2
361 # - build:linux:arm64
363 - mkdir Windows && mkdir Linux && mkdir MacOS &&
364 cp ${VERUS_CLI_WINDOWS} Windows &&
365 cp ${VERUS_CLI_LINUX} Linux &&
366 cp ${VERUS_CLI_MACOS} MacOS
367 - echo "$AUTH_KEY" > AUTH_KEY.json &&
368 gcloud auth activate-service-account
369 --key-file AUTH_KEY.json
370 - gsutil cp -r Windows MacOS Linux $STAGING/${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}
372 -F token="$CI_JOB_TOKEN"
373 -F ref="$DOWNSTREAM_AGAMA_BRANCH"
374 -F variables\[UPSTREAM_TRIGGER\]="${CI_PROJECT_NAME}"
375 -F variables\[UPSTREAM_CLI_BRANCH\]="${CI_COMMIT_REF_NAME}"
376 -F variables\[VERUS_CLI_LINUX\]="${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}/Linux/${VERUS_CLI_LINUX}"
377 -F variables\[VERUS_CLI_WINDOWS\]="${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}/Windows/${VERUS_CLI_WINDOWS}"
378 -F variables\[VERUS_CLI_MACOS\]="${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}/MacOS/${VERUS_CLI_MACOS}"
379 "https://gitlab.com/api/v4/projects/12539166/trigger/pipeline"
383 - ${VERUS_CLI_LINUX}.sha256
384 - ${VERUS_CLI_WINDOWS}
385 - ${VERUS_CLI_WINDOWS}.sha256
387 - ${VERUS_CLI_MACOS}.sha256
388 # - ${VERUS_CLI_ARM64_LINUX}
389 # - ${VERUS_CLI_ARM64_LINUX}.sha256
391 ########################################################################################################################
392 ####END#### Deploy ####END####
393 ########################################################################################################################