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
80 key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
84 - zcutil/build.sh -j$(nproc)
85 - 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
89 doc/man/verus-cli/linux/README.txt
90 zcutil/fetch-params.sh
92 - mv verus-cli/fetch-params.sh verus-cli/fetch-params
93 - chmod +x verus-cli/verus
94 - chmod +x verus-cli/verusd
95 - chmod +x verus-cli/fetch-params
96 - tar -czvf ${VERUS_CLI_ARM64_LINUX} verus-cli
97 - sha256sum ${VERUS_CLI_ARM64_LINUX} > ${VERUS_CLI_ARM64_LINUX}.sha256
100 - curl -F file=@"${VERUS_CLI_ARM64_LINUX}"
101 -F channels="${CLI_POST_CHANNEL}"
102 -F initial_comment="${POST_MESSAGE}"
103 -H "${SLACK_BOT_AUTH}"
104 "https://slack.com/api/files.upload"
107 - ${VERUS_CLI_ARM64_LINUX}
108 - ${VERUS_CLI_ARM64_LINUX}.sha256
110 ########################################################################################################################
111 ####END#### LINUX ####END####
112 ########################################################################################################################
113 ####START#### WINDOWS ####START####
114 ########################################################################################################################
116 image: asherd/verus-builders:verus-windows
118 DOCKER_DRIVER: overlay2
119 CONFIGURE_FLAGS: --with-gcc-arch=x86-64
122 key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
126 - zcutil/build-win.sh -j$(nproc)
130 doc/man/verus-cli/windows/README.txt
131 zcutil/fetch-params.bat
134 - if [ "${STRIP_BINARIES}" = "true" ]; then strip --strip-unneeded verus-cli/verusd.exe && strip --strip-unneeded verus-cli/verus.exe; fi
135 - zip -r ${VERUS_CLI_WINDOWS} verus-cli
136 - sha256sum ${VERUS_CLI_WINDOWS} > ${VERUS_CLI_WINDOWS}.sha256
137 - curl -F file=@"${VERUS_CLI_WINDOWS}"
138 -F channels="${CLI_POST_CHANNEL}"
139 -F initial_comment="${POST_MESSAGE}"
140 -H "${SLACK_BOT_AUTH}"
141 "https://slack.com/api/files.upload"
144 - ${VERUS_CLI_WINDOWS}
145 - ${VERUS_CLI_WINDOWS}.sha256
147 ########################################################################################################################
148 ####END#### WINDOWS ####END####
149 ########################################################################################################################
150 ####START#### MACOS ####START####
151 ########################################################################################################################
154 CONFIGURE_FLAGS: --with-gcc-arch=x86-64
158 key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
162 - zcutil/build-mac.sh -j$(sysctl -n hw.physicalcpu)
163 - ./makeReleaseMac.sh
164 - tar -czvf ${VERUS_CLI_MACOS} verus-cli
165 - shasum -a 256 ${VERUS_CLI_MACOS} > ${VERUS_CLI_MACOS}.sha256
166 - curl -F file=@"${VERUS_CLI_MACOS}"
167 -F channels="${CLI_POST_CHANNEL}"
168 -F initial_comment="${POST_MESSAGE}"
169 -H "${SLACK_BOT_AUTH}"
170 "https://slack.com/api/files.upload"
174 - ${VERUS_CLI_MACOS}.sha256
176 ########################################################################################################################
177 ####END#### MACOS ####END####
178 ########################################################################################################################
179 ########################################################################################################################
180 ####END#### Build Stage ####END####
181 ########################################################################################################################
182 ########################################################################################################################
183 ########################################################################################################################
184 ########################################################################################################################
185 ####START#### Test stage: Test functionality of komodo binaries. Produce code quality and SAST reports. ####START####
186 ########################################################################################################################
187 ########################################################################################################################
188 ########################################################################################################################
189 ####START#### Code Quality ####START####
190 ########################################################################################################################
194 DOCKER_DRIVER: overlay2
199 - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
201 --env SOURCE_CODE="$PWD"
202 --volume "$PWD":/code
203 --volume /var/run/docker.sock:/var/run/docker.sock
204 "registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
206 paths: [gl-code-quality-report.json]
207 ########################################################################################################################
208 ####END#### Code Quality ####END####
209 ########################################################################################################################
210 ########################################################################################################################
211 ####START#### Static Application Security Tests ####START####
212 ########################################################################################################################
216 DOCKER_DRIVER: overlay2
221 - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
223 --env SAST_CONFIDENCE_LEVEL="${SAST_CONFIDENCE_LEVEL:-3}"
224 --volume "$PWD:/code"
225 --volume /var/run/docker.sock:/var/run/docker.sock
226 "registry.gitlab.com/gitlab-org/security-products/sast:$SP_VERSION" /app/bin/run /code
228 paths: [gl-sast-report.json]
229 ########################################################################################################################
230 ####END#### Static Application Security Tests ####END####
231 ########################################################################################################################
232 ########################################################################################################################
233 ####START#### Run Verus CLI on Ubuntu Xenial (16.04) ####START####
234 ########################################################################################################################
238 DOCKER_DRIVER: overlay2
241 - apt update && apt install -y wget libgomp1 libcurl4-gnutls-dev python
242 - rm -rf /root/.komodo || true
243 - mv .komodo /root/ || true
245 - tar -xzvf ${VERUS_CLI_LINUX}
246 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
247 - python qa/verus-cli-tests/verus-cli-tester.py
249 - mv /root/.komodo ./ || true
258 ########################################################################################################################
259 ####END#### Run Verus CLI on Ubuntu Xenial (16.04) ####END####
260 ########################################################################################################################
261 ########################################################################################################################
262 ####START#### Run Verus CLI on Ubuntu Bionic (18.04) ####START####
263 ########################################################################################################################
267 DOCKER_DRIVER: overlay2
270 - apt update && apt install -y wget libgomp1 libcurl4-gnutls-dev python
271 - rm -rf /root/.komodo || true
272 - mv .komodo /root/ || true
274 - tar -xzvf ${VERUS_CLI_LINUX}
275 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
276 - python qa/verus-cli-tests/verus-cli-tester.py
278 - mv /root/.komodo ./ || true
287 ########################################################################################################################
288 ####END#### Run Verus CLI on Ubuntu Bionic (18.04) ####END####
289 ########################################################################################################################
290 ########################################################################################################################
291 ####START#### Run Verus CLI on MacOS Sierra (10.12.6) ####START####
292 ########################################################################################################################
297 - tar -xzvf $VERUS_CLI_MACOS
298 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
299 - python qa/verus-cli-tests/verus-cli-tester.py
305 ########################################################################################################################
306 ####END#### Run Verus CLI on MacOS Sierra (10.12.6) ####END####
307 ########################################################################################################################
308 ########################################################################################################################
309 ####START#### Run Verus CLI on MacOS High Sierra (10.12.6) ####START####
310 ########################################################################################################################
313 tags: ["High Sierra"]
315 - tar -xzvf ${VERUS_CLI_MACOS}
316 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
317 - python qa/verus-cli-tests/verus-cli-tester.py
323 ########################################################################################################################
324 ####START#### Run Verus CLI on MacOS High Sierra (10.12.6) ####START####
325 ########################################################################################################################
326 ########################################################################################################################
327 ####START#### Run Verus CLI on Windows 10 ####START####
328 ########################################################################################################################
333 - PowerShell Expand-Archive -Path %VERUS_CLI_WINDOWS% -DestinationPath %CI_PROJECT_DIR%
334 - set PATH=%PATH%;%CI_PROJECT_DIR%\verus-cli
335 - qa\verus-cli-tests\verus-cli-tester.py
341 ########################################################################################################################
342 ####END#### Run Verus CLI on Windows 10 ####END####
343 ########################################################################################################################
344 ########################################################################################################################
345 ####END#### Test Stage ####END####
346 ########################################################################################################################
347 ########################################################################################################################
348 ####START#### Deploy ####START####
349 ########################################################################################################################
352 image: google/cloud-sdk:alpine
354 DOCKER_DRIVER: overlay2
361 - mkdir Windows && mkdir Linux && mkdir MacOS &&
362 cp ${VERUS_CLI_WINDOWS} Windows &&
363 cp ${VERUS_CLI_LINUX} ${VERUS_CLI_ARM64_LINUX} Linux &&
364 cp ${VERUS_CLI_MACOS} MacOS
365 - echo "$AUTH_KEY" > AUTH_KEY.json &&
366 gcloud auth activate-service-account
367 --key-file AUTH_KEY.json
368 - gsutil cp -r Windows MacOS Linux $STAGING/${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}
370 -F token="$CI_JOB_TOKEN"
371 -F ref="$DOWNSTREAM_AGAMA_BRANCH"
372 -F variables\[UPSTREAM_TRIGGER\]="${CI_PROJECT_NAME}"
373 -F variables\[UPSTREAM_CLI_BRANCH\]="${CI_COMMIT_REF_NAME}"
374 -F variables\[VERUS_CLI_LINUX\]="${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}/Linux/${VERUS_CLI_LINUX}"
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"
381 - ${VERUS_CLI_LINUX}.sha256
382 - ${VERUS_CLI_WINDOWS}
383 - ${VERUS_CLI_WINDOWS}.sha256
385 - ${VERUS_CLI_MACOS}.sha256
386 - ${VERUS_CLI_ARM64_LINUX}
387 - ${VERUS_CLI_ARM64_LINUX}.sha256
389 ########################################################################################################################
390 ####END#### Deploy ####END####
391 ########################################################################################################################