]> Git Repo - VerusCoin.git/blame - .gitlab-ci.yml
Merge remote-tracking branch 'mike/dev' 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:
a51c6419 9 VERSION: 0.6.5-dev-4
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
c79ca917 130 verus-cli
8f184a5f
A
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}"
522c4984
AD
135 -F channels="${CLI_POST_CHANNEL}"
136 -F initial_comment="${POST_MESSAGE}"
5ce49ee3
AD
137 -H "${SLACK_BOT_AUTH}"
138 "https://slack.com/api/files.upload"
d7fbec21 139 artifacts:
522c4984 140 paths:
8f184a5f
A
141 - ${VERUS_CLI_WINDOWS}
142 - ${VERUS_CLI_WINDOWS}.sha256
d7fbec21 143 expire_in: 1 week
c79ca917
AD
144########################################################################################################################
145####END#### WINDOWS ####END####
146########################################################################################################################
147####START#### MACOS ####START####
148########################################################################################################################
4266851b 149build:mac:
8f184a5f
A
150 variables:
151 CONFIGURE_FLAGS: --with-gcc-arch=x86-64
d7fbec21 152 stage: build
b8c88100 153 tags: ["Mojave"]
d7fbec21 154 cache:
c79ca917 155 key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
d7fbec21 156 paths:
8f184a5f 157 - depends
9892a176 158 script:
8f184a5f
A
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}"
522c4984
AD
164 -F channels="${CLI_POST_CHANNEL}"
165 -F initial_comment="${POST_MESSAGE}"
5ce49ee3
AD
166 -H "${SLACK_BOT_AUTH}"
167 "https://slack.com/api/files.upload"
d7fbec21 168 artifacts:
522c4984 169 paths:
8f184a5f
A
170 - ${VERUS_CLI_MACOS}
171 - ${VERUS_CLI_MACOS}.sha256
d7fbec21 172 expire_in: 1 week
c79ca917
AD
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########################################################################################################################
bc0232a1 188.code_quality:
9892a176
AD
189 image: docker:stable
190 variables:
191 DOCKER_DRIVER: overlay2
192 allow_failure: true
193 services:
8f184a5f 194 - docker:stable-dind
9892a176 195 script:
8f184a5f
A
196 - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
197 - docker run
46d858be
AD
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
9892a176
AD
202 artifacts:
203 paths: [gl-code-quality-report.json]
c79ca917
AD
204########################################################################################################################
205####END#### Code Quality ####END####
206########################################################################################################################
207########################################################################################################################
208####START#### Static Application Security Tests ####START####
209########################################################################################################################
bc0232a1 210.sast:
9892a176
AD
211 image: docker:stable
212 variables:
213 DOCKER_DRIVER: overlay2
214 allow_failure: true
215 services:
8f184a5f 216 - docker:stable-dind
9892a176 217 script:
8f184a5f
A
218 - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
219 - docker run
46d858be
AD
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
9892a176
AD
224 artifacts:
225 paths: [gl-sast-report.json]
c79ca917
AD
226########################################################################################################################
227####END#### Static Application Security Tests ####END####
228########################################################################################################################
229########################################################################################################################
230####START#### Run Verus CLI on Ubuntu Xenial (16.04) ####START####
231########################################################################################################################
bc0232a1 232.ubuntu:xenial:
e7f4832f
AD
233 image: ubuntu:xenial
234 variables:
235 DOCKER_DRIVER: overlay2
236 stage: test
237 before_script:
8f184a5f
A
238 - apt update && apt install -y wget libgomp1 libcurl4-gnutls-dev python
239 - rm -rf /root/.komodo || true
240 - mv .komodo /root/ || true
e7f4832f 241 script:
8d929ca6 242 - tar -xzvf ${VERUS_CLI_LINUX_AMD64}
8f184a5f
A
243 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
244 - python qa/verus-cli-tests/verus-cli-tester.py
81b6f9a5 245 after_script:
8f184a5f 246 - mv /root/.komodo ./ || true
81b6f9a5
AD
247 cache:
248 key: ${CI_JOB_NAME}
249 paths: [.komodo]
e7f4832f
AD
250 artifacts:
251 paths: [log.txt]
252 expire_in: 1 week
253 dependencies:
8f184a5f 254 - build:linux
c79ca917
AD
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########################################################################################################################
bc0232a1 261.ubuntu:bionic:
e7f4832f
AD
262 image: ubuntu:bionic
263 variables:
264 DOCKER_DRIVER: overlay2
265 stage: test
266 before_script:
8f184a5f
A
267 - apt update && apt install -y wget libgomp1 libcurl4-gnutls-dev python
268 - rm -rf /root/.komodo || true
269 - mv .komodo /root/ || true
e7f4832f 270 script:
8d929ca6 271 - tar -xzvf ${VERUS_CLI_LINUX_AMD64}
8f184a5f
A
272 - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
273 - python qa/verus-cli-tests/verus-cli-tester.py
81b6f9a5 274 after_script:
8f184a5f 275 - mv /root/.komodo ./ || true
81b6f9a5
AD
276 cache:
277 key: ${CI_JOB_NAME}
278 paths: [.komodo]
e7f4832f
AD
279 artifacts:
280 paths: [log.txt]
281 expire_in: 1 week
282 dependencies:
8f184a5f 283 - build:linux
c79ca917
AD
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########################################################################################################################
290.macos:sierra:
e7f4832f
AD
291 stage: test
292 tags: ["Sierra"]
293 script:
8f184a5f
A
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
e7f4832f
AD
297 artifacts:
298 paths: [log.txt]
299 expire_in: 1 week
300 dependencies:
8f184a5f 301 - build:mac
c79ca917
AD
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########################################################################################################################
522c4984 308.macos:high-sierra:
e7f4832f
AD
309 stage: test
310 tags: ["High Sierra"]
311 script:
8f184a5f
A
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
e7f4832f
AD
315 artifacts:
316 paths: [log.txt]
317 expire_in: 1 week
318 dependencies:
8f184a5f 319 - build:mac
c79ca917
AD
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########################################################################################################################
4474ce24 326.windows:10:
e7f4832f
AD
327 stage: test
328 tags: ["Windows 10"]
329 script:
8f184a5f
A
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
e7f4832f
AD
333 artifacts:
334 paths: [log.txt]
335 expire_in: 1 week
336 dependencies:
8f184a5f 337 - build:windows
c79ca917
AD
338########################################################################################################################
339####END#### Run Verus CLI on Windows 10 ####END####
340########################################################################################################################
341########################################################################################################################
342####END#### Test Stage ####END####
343########################################################################################################################
344########################################################################################################################
345####START#### Deploy ####START####
346########################################################################################################################
5ce49ee3 347deploy:
e96d89da
AD
348 stage: deploy
349 image: google/cloud-sdk:alpine
350 variables:
351 DOCKER_DRIVER: overlay2
352 dependencies:
8f184a5f 353 - build:linux
923d0a70 354 - build:windows
8f184a5f 355 - build:mac
9ab01dd8 356 - build:linux:arm64
0af1486c 357 script:
65d2bc89
A
358 - mkdir Windows && mkdir Linux && mkdir MacOS
359 - cp ${VERUS_CLI_WINDOWS} Windows
360 - cp ${VERUS_CLI_LINUX_AMD64} Linux
aa00eeab 361 - cp ${VERUS_CLI_ARM64_LINUX} Linux
65d2bc89 362 - cp ${VERUS_CLI_MACOS} MacOS
8f184a5f
A
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}
0d4928b2
A
367 artifacts:
368 paths:
8d929ca6
A
369 - ${VERUS_CLI_LINUX_AMD64}
370 - ${VERUS_CLI_LINUX_AMD64}.sha256
923d0a70
AD
371 - ${VERUS_CLI_WINDOWS}
372 - ${VERUS_CLI_WINDOWS}.sha256
0d4928b2
A
373 - ${VERUS_CLI_MACOS}
374 - ${VERUS_CLI_MACOS}.sha256
9ab01dd8
A
375 - ${VERUS_CLI_ARM64_LINUX}
376 - ${VERUS_CLI_ARM64_LINUX}.sha256
0d4928b2 377 expire_in: 1 week
c79ca917
AD
378########################################################################################################################
379####END#### Deploy ####END####
8f184a5f 380########################################################################################################################
This page took 0.108369 seconds and 4 git commands to generate.