]> Git Repo - VerusCoin.git/blame - .gitlab-ci.yml
Merge branch 'dev' of https://github.com/miketout/VerusCoin into dev
[VerusCoin.git] / .gitlab-ci.yml
CommitLineData
d7fbec21 1stages:
8f184a5f
A
2 - build
3 - test
4 - deploy
c79ca917
AD
5########################################################################################################################
6####START#### PROJECT LEVEL VARIABLES ####START####
7########################################################################################################################
fd4f2876 8variables:
1c0a964b 9 VERSION: 0.6.2-2
0fbf347a 10 VERUS_CLI_ARM64_LINUX: Verus-CLI-Linux-v${VERSION}-arm64.tar.gz
8d929ca6 11 VERUS_CLI_LINUX_AMD64: Verus-CLI-Linux-v${VERSION}-amd64.tar.gz
522c4984
AD
12 VERUS_CLI_WINDOWS: Verus-CLI-Windows-v${VERSION}.zip
13 VERUS_CLI_MACOS: Verus-CLI-MacOS-v${VERSION}.tar.gz
c4031206 14 DOWNSTREAM_AGAMA_BRANCH: ${CI_COMMIT_REF_NAME}
522c4984
AD
15 POST_MESSAGE: "Source: ${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}\n
16 Pipeline Trigger: ${CI_PIPELINE_SOURCE}\n
3971a608 17 Commit: https://github.com/VerusCoin/VerusCoin/commit/${CI_COMMIT_SHA}\n
522c4984 18 ${CI_COMMIT_MESSAGE}"
fc7d0b99 19 STRIP_BINARIES: "true"
8f184a5f 20########################################################################################################################
c79ca917
AD
21####END#### PROJECT LEVEL VARIABLES ####END####
22########################################################################################################################
23########################################################################################################################
24########################################################################################################################
93a59b2f 25####START#### Build Stage: compile and package binaries for Verus CLI ####START#####
c79ca917
AD
26########################################################################################################################
27########################################################################################################################
28####START#### LINUX ####START####
29########################################################################################################################
2b198dc7 30build:linux:
6d87cb8b 31 image: asherd/verus-builders:verus-centos
2b198dc7
AD
32 variables:
33 DOCKER_DRIVER: overlay2
8f184a5f 34 CONFIGURE_FLAGS: --with-gcc-arch=x86-64
2b198dc7
AD
35 stage: build
36 cache:
37 key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
38 paths:
8f184a5f 39 - depends
2b198dc7 40 script:
25dcf869 41 - scl enable devtoolset-7 sh
42 - source /opt/rh/devtoolset-7/enable
43 - zcutil/build.sh -j$(nproc)
167adf70 44 - if [ "${STRIP_BINARIES}" = "true" ]; then strip --strip-unneeded src/verus && strip --strip-unneeded src/verusd; fi
25dcf869 45 - mkdir verus-cli
5915430d 46 - cp src/verus
2b198dc7
AD
47 src/verusd
48 doc/man/verus-cli/linux/README.txt
49 zcutil/fetch-params.sh
50 verus-cli
25dcf869 51 - mv verus-cli/fetch-params.sh verus-cli/fetch-params
25dcf869 52 - chmod +x verus-cli/verus
53 - chmod +x verus-cli/verusd
54 - chmod +x verus-cli/fetch-params
8d929ca6
A
55 - tar -czvf ${VERUS_CLI_LINUX_AMD64} verus-cli
56 - sha256sum ${VERUS_CLI_LINUX_AMD64} > ${VERUS_CLI_LINUX_AMD64}.sha256
d2b491f1 57 - git status
c4031206 58 after_script:
8d929ca6 59 - curl -F file=@"${VERUS_CLI_LINUX_AMD64}"
2b198dc7 60 -F channels="${CLI_POST_CHANNEL}"
0fbf347a
A
61 -F initial_comment="${POST_MESSAGE}"
62 -H "${SLACK_BOT_AUTH}"
63 "https://slack.com/api/files.upload"
64 artifacts:
65 paths:
8d929ca6
A
66 - ${VERUS_CLI_LINUX_AMD64}
67 - ${VERUS_CLI_LINUX_AMD64}.sha256
0fbf347a
A
68 expire_in: 1 week
69
9ab01dd8 70build:linux:arm64:
0fbf347a
A
71 image: asherd/verus-builders:cross-arm
72 variables:
73 DOCKER_DRIVER: overlay2
74 HOST: aarch64-linux-gnu
75 STRIP: /usr/aarch64-linux-gnu/bin/strip
0fbf347a
A
76 stage: build
77 cache:
78 key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
79 paths:
80 - depends
81 script:
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
84 - mkdir verus-cli
85 - cp src/verus
86 src/verusd
87 doc/man/verus-cli/linux/README.txt
88 zcutil/fetch-params.sh
89 verus-cli
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
96 - git status
97 after_script:
98 - curl -F file=@"${VERUS_CLI_ARM64_LINUX}"
99 -F channels="${CLI_POST_CHANNEL}"
2b198dc7
AD
100 -F initial_comment="${POST_MESSAGE}"
101 -H "${SLACK_BOT_AUTH}"
102 "https://slack.com/api/files.upload"
103 artifacts:
104 paths:
69df9b55
A
105 - ${VERUS_CLI_ARM64_LINUX}
106 - ${VERUS_CLI_ARM64_LINUX}.sha256
2b198dc7 107 expire_in: 1 week
c79ca917
AD
108########################################################################################################################
109####END#### LINUX ####END####
110########################################################################################################################
111####START#### WINDOWS ####START####
112########################################################################################################################
923d0a70 113build:windows:
925f4658 114 image: asherd/verus-builders:verus-windows
d7fbec21
AD
115 variables:
116 DOCKER_DRIVER: overlay2
8f184a5f 117 CONFIGURE_FLAGS: --with-gcc-arch=x86-64
d7fbec21
AD
118 stage: build
119 cache:
c79ca917 120 key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
d7fbec21 121 paths:
8f184a5f 122 - depends
9892a176 123 script:
8f184a5f
A
124 - zcutil/build-win.sh -j$(nproc)
125 - mkdir verus-cli
126 - cp src/verus.exe
5915430d 127 src/verusd.exe
c79ca917
AD
128 doc/man/verus-cli/windows/README.txt
129 zcutil/fetch-params.bat
130 zcutil/wget64.exe
131 verus-cli
8f184a5f
A
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}"
522c4984
AD
136 -F channels="${CLI_POST_CHANNEL}"
137 -F initial_comment="${POST_MESSAGE}"
5ce49ee3
AD
138 -H "${SLACK_BOT_AUTH}"
139 "https://slack.com/api/files.upload"
d7fbec21 140 artifacts:
522c4984 141 paths:
8f184a5f
A
142 - ${VERUS_CLI_WINDOWS}
143 - ${VERUS_CLI_WINDOWS}.sha256
d7fbec21 144 expire_in: 1 week
c79ca917
AD
145########################################################################################################################
146####END#### WINDOWS ####END####
147########################################################################################################################
148####START#### MACOS ####START####
149########################################################################################################################
4266851b 150build:mac:
8f184a5f
A
151 variables:
152 CONFIGURE_FLAGS: --with-gcc-arch=x86-64
d7fbec21 153 stage: build
b8c88100 154 tags: ["Mojave"]
d7fbec21 155 cache:
c79ca917 156 key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
d7fbec21 157 paths:
8f184a5f 158 - depends
9892a176 159 script:
8f184a5f
A
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}"
522c4984
AD
165 -F channels="${CLI_POST_CHANNEL}"
166 -F initial_comment="${POST_MESSAGE}"
5ce49ee3
AD
167 -H "${SLACK_BOT_AUTH}"
168 "https://slack.com/api/files.upload"
d7fbec21 169 artifacts:
522c4984 170 paths:
8f184a5f
A
171 - ${VERUS_CLI_MACOS}
172 - ${VERUS_CLI_MACOS}.sha256
d7fbec21 173 expire_in: 1 week
c79ca917
AD
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########################################################################################################################
bc0232a1 189.code_quality:
9892a176
AD
190 image: docker:stable
191 variables:
192 DOCKER_DRIVER: overlay2
193 allow_failure: true
194 services:
8f184a5f 195 - docker:stable-dind
9892a176 196 script:
8f184a5f
A
197 - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
198 - docker run
46d858be
AD
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
9892a176
AD
203 artifacts:
204 paths: [gl-code-quality-report.json]
c79ca917
AD
205########################################################################################################################
206####END#### Code Quality ####END####
207########################################################################################################################
208########################################################################################################################
209####START#### Static Application Security Tests ####START####
210########################################################################################################################
bc0232a1 211.sast:
9892a176
AD
212 image: docker:stable
213 variables:
214 DOCKER_DRIVER: overlay2
215 allow_failure: true
216 services:
8f184a5f 217 - docker:stable-dind
9892a176 218 script:
8f184a5f
A
219 - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
220 - docker run
46d858be
AD
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
9892a176
AD
225 artifacts:
226 paths: [gl-sast-report.json]
c79ca917
AD
227########################################################################################################################
228####END#### Static Application Security Tests ####END####
229########################################################################################################################
230########################################################################################################################
231####START#### Run Verus CLI on Ubuntu Xenial (16.04) ####START####
232########################################################################################################################
bc0232a1 233.ubuntu:xenial:
e7f4832f
AD
234 image: ubuntu:xenial
235 variables:
236 DOCKER_DRIVER: overlay2
237 stage: test
238 before_script:
8f184a5f
A
239 - apt update && apt install -y wget libgomp1 libcurl4-gnutls-dev python
240 - rm -rf /root/.komodo || true
241 - mv .komodo /root/ || true
e7f4832f 242 script:
8d929ca6 243 - tar -xzvf ${VERUS_CLI_LINUX_AMD64}
8f184a5f
A
244 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
245 - python qa/verus-cli-tests/verus-cli-tester.py
81b6f9a5 246 after_script:
8f184a5f 247 - mv /root/.komodo ./ || true
81b6f9a5
AD
248 cache:
249 key: ${CI_JOB_NAME}
250 paths: [.komodo]
e7f4832f
AD
251 artifacts:
252 paths: [log.txt]
253 expire_in: 1 week
254 dependencies:
8f184a5f 255 - build:linux
c79ca917
AD
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########################################################################################################################
bc0232a1 262.ubuntu:bionic:
e7f4832f
AD
263 image: ubuntu:bionic
264 variables:
265 DOCKER_DRIVER: overlay2
266 stage: test
267 before_script:
8f184a5f
A
268 - apt update && apt install -y wget libgomp1 libcurl4-gnutls-dev python
269 - rm -rf /root/.komodo || true
270 - mv .komodo /root/ || true
e7f4832f 271 script:
8d929ca6 272 - tar -xzvf ${VERUS_CLI_LINUX_AMD64}
8f184a5f
A
273 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
274 - python qa/verus-cli-tests/verus-cli-tester.py
81b6f9a5 275 after_script:
8f184a5f 276 - mv /root/.komodo ./ || true
81b6f9a5
AD
277 cache:
278 key: ${CI_JOB_NAME}
279 paths: [.komodo]
e7f4832f
AD
280 artifacts:
281 paths: [log.txt]
282 expire_in: 1 week
283 dependencies:
8f184a5f 284 - build:linux
c79ca917
AD
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########################################################################################################################
291.macos:sierra:
e7f4832f
AD
292 stage: test
293 tags: ["Sierra"]
294 script:
8f184a5f
A
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
e7f4832f
AD
298 artifacts:
299 paths: [log.txt]
300 expire_in: 1 week
301 dependencies:
8f184a5f 302 - build:mac
c79ca917
AD
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########################################################################################################################
522c4984 309.macos:high-sierra:
e7f4832f
AD
310 stage: test
311 tags: ["High Sierra"]
312 script:
8f184a5f
A
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
e7f4832f
AD
316 artifacts:
317 paths: [log.txt]
318 expire_in: 1 week
319 dependencies:
8f184a5f 320 - build:mac
c79ca917
AD
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########################################################################################################################
4474ce24 327.windows:10:
e7f4832f
AD
328 stage: test
329 tags: ["Windows 10"]
330 script:
8f184a5f
A
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
e7f4832f
AD
334 artifacts:
335 paths: [log.txt]
336 expire_in: 1 week
337 dependencies:
8f184a5f 338 - build:windows
c79ca917
AD
339########################################################################################################################
340####END#### Run Verus CLI on Windows 10 ####END####
341########################################################################################################################
342########################################################################################################################
343####END#### Test Stage ####END####
344########################################################################################################################
345########################################################################################################################
346####START#### Deploy ####START####
347########################################################################################################################
5ce49ee3 348deploy:
e96d89da
AD
349 stage: deploy
350 image: google/cloud-sdk:alpine
351 variables:
352 DOCKER_DRIVER: overlay2
353 dependencies:
8f184a5f 354 - build:linux
923d0a70 355 - build:windows
8f184a5f 356 - build:mac
9ab01dd8 357 - build:linux:arm64
0af1486c 358 script:
65d2bc89
A
359 - mkdir Windows && mkdir Linux && mkdir MacOS
360 - cp ${VERUS_CLI_WINDOWS} Windows
361 - cp ${VERUS_CLI_LINUX_AMD64} Linux
aa00eeab 362 - cp ${VERUS_CLI_ARM64_LINUX} Linux
65d2bc89 363 - cp ${VERUS_CLI_MACOS} MacOS
8f184a5f
A
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}
368 - curl -X POST
5ce49ee3 369 -F token="$CI_JOB_TOKEN"
522c4984 370 -F ref="$DOWNSTREAM_AGAMA_BRANCH"
4ecb8fe9 371 -F variables\[UPSTREAM_TRIGGER\]="${CI_PROJECT_NAME}"
8d929ca6 372 -F variables\[VERUS_VERSION\]="${VERSION}"
4ecb8fe9 373 -F variables\[UPSTREAM_CLI_BRANCH\]="${CI_COMMIT_REF_NAME}"
8d929ca6 374 -F variables\[VERUS_CLI_LINUX_AMD64\]="${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}/Linux/${VERUS_CLI_LINUX_AMD64}"
923d0a70 375 -F variables\[VERUS_CLI_WINDOWS\]="${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}/Windows/${VERUS_CLI_WINDOWS}"
dbd99747 376 -F variables\[VERUS_CLI_MACOS\]="${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}/MacOS/${VERUS_CLI_MACOS}"
9455a6fc 377 "https://gitlab.com/api/v4/projects/12539166/trigger/pipeline"
8d929ca6
A
378 - curl -X POST
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}"
923d0a70 385 -F variables\[VERUS_CLI_WINDOWS\]="${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}/Windows/${VERUS_CLI_WINDOWS}"
8d929ca6
A
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"
0d4928b2
A
388 artifacts:
389 paths:
8d929ca6
A
390 - ${VERUS_CLI_LINUX_AMD64}
391 - ${VERUS_CLI_LINUX_AMD64}.sha256
923d0a70
AD
392 - ${VERUS_CLI_WINDOWS}
393 - ${VERUS_CLI_WINDOWS}.sha256
0d4928b2
A
394 - ${VERUS_CLI_MACOS}
395 - ${VERUS_CLI_MACOS}.sha256
9ab01dd8
A
396 - ${VERUS_CLI_ARM64_LINUX}
397 - ${VERUS_CLI_ARM64_LINUX}.sha256
0d4928b2 398 expire_in: 1 week
c79ca917
AD
399########################################################################################################################
400####END#### Deploy ####END####
8f184a5f 401########################################################################################################################
This page took 0.133534 seconds and 4 git commands to generate.