]> Git Repo - VerusCoin.git/blob - .gitlab-ci.yml
Update deprecation height and version
[VerusCoin.git] / .gitlab-ci.yml
1 stages:
2   - build
3   - test
4   - deploy
5 ########################################################################################################################
6 ####START####                                     PROJECT LEVEL VARIABLES                                  ####START####
7 ########################################################################################################################
8 variables:
9   VERSION: 0.7.0-3
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/${CI_PROJECT_NAME}/commit/${CI_COMMIT_SHA}\n
18   ${CI_COMMIT_MESSAGE}"
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 ########################################################################################################################
30 build:linux:
31   image: asherd/verus-builders:verus-xenial
32   variables:
33     DOCKER_DRIVER: overlay2
34     CONFIGURE_FLAGS: --with-gcc-arch=x86-64
35   stage: build
36   cache:
37     key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
38     paths:
39       - depends
40   script:
41     - zcutil/build.sh -j$(nproc)
42     - if [ "${STRIP_BINARIES}" = "true" ]; then strip --strip-unneeded  src/verus && strip --strip-unneeded  src/verusd; fi
43     - mkdir verus-cli
44     - cp src/verus
45         src/verusd
46         doc/man/verus-cli/linux/README.txt
47         zcutil/fetch-params.sh
48         verus-cli
49     - mv verus-cli/fetch-params.sh verus-cli/fetch-params
50     - chmod +x verus-cli/verus
51     - chmod +x verus-cli/verusd
52     - chmod +x verus-cli/fetch-params
53     - tar -czvf ${VERUS_CLI_LINUX_AMD64} verus-cli
54     - sha256sum ${VERUS_CLI_LINUX_AMD64} > ${VERUS_CLI_LINUX_AMD64}.sha256
55     - git status
56   after_script:
57     - curl -F file=@"${VERUS_CLI_LINUX_AMD64}"
58       -F channels="${CLI_POST_CHANNEL}"
59       -F initial_comment="${POST_MESSAGE}"
60       -H "${SLACK_BOT_AUTH}"
61       "https://slack.com/api/files.upload"
62   artifacts:
63     paths:
64       - ${VERUS_CLI_LINUX_AMD64}
65       - ${VERUS_CLI_LINUX_AMD64}.sha256
66     expire_in: 1 week
67
68
69 build:linux:arm64:
70   image: asherd/verus-builders:cross-arm
71   variables:
72     DOCKER_DRIVER: overlay2
73     HOST: aarch64-linux-gnu
74     STRIP: /usr/aarch64-linux-gnu/bin/strip
75   stage: build
76   cache:
77     key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
78     paths:
79       - depends
80   script:
81     - zcutil/build.sh -j$(nproc)
82     - 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
83     - mkdir verus-cli
84     - cp src/verus
85         src/verusd
86         doc/man/verus-cli/linux/README.txt
87         zcutil/fetch-params.sh
88         verus-cli
89     - mv verus-cli/fetch-params.sh verus-cli/fetch-params
90     - chmod +x verus-cli/verus
91     - chmod +x verus-cli/verusd
92     - chmod +x verus-cli/fetch-params
93     - tar -czvf ${VERUS_CLI_ARM64_LINUX} verus-cli
94     - sha256sum ${VERUS_CLI_ARM64_LINUX} > ${VERUS_CLI_ARM64_LINUX}.sha256
95     - git status
96   after_script:
97     - curl -F file=@"${VERUS_CLI_ARM64_LINUX}"
98       -F channels="${CLI_POST_CHANNEL}"
99       -F initial_comment="${POST_MESSAGE}"
100       -H "${SLACK_BOT_AUTH}"
101       "https://slack.com/api/files.upload"
102   artifacts:
103     paths:
104       - ${VERUS_CLI_ARM64_LINUX}
105       - ${VERUS_CLI_ARM64_LINUX}.sha256
106     expire_in: 1 week
107 ########################################################################################################################
108 ####END####                                              LINUX                                               ####END####
109 ########################################################################################################################
110 ####START####                                           WINDOWS                                            ####START####
111 ########################################################################################################################
112 build:windows:
113   image: asherd/verus-builders:verus-windows
114   variables:
115     DOCKER_DRIVER: overlay2
116     CONFIGURE_FLAGS: --with-gcc-arch=x86-64
117   stage: build
118   cache:
119     key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
120     paths:
121       - depends
122   script:
123     - zcutil/build-win.sh -j$(nproc)
124     - mkdir verus-cli
125     - cp src/verus.exe
126         src/verusd.exe
127         doc/man/verus-cli/windows/README.txt
128         zcutil/fetch-params.bat
129         verus-cli
130     - if [ "${STRIP_BINARIES}" = "true" ]; then strip --strip-unneeded verus-cli/verusd.exe && strip --strip-unneeded verus-cli/verus.exe; fi
131     - zip -r ${VERUS_CLI_WINDOWS} verus-cli
132     - sha256sum ${VERUS_CLI_WINDOWS} > ${VERUS_CLI_WINDOWS}.sha256
133     - curl -F file=@"${VERUS_CLI_WINDOWS}"
134       -F channels="${CLI_POST_CHANNEL}"
135       -F initial_comment="${POST_MESSAGE}"
136       -H "${SLACK_BOT_AUTH}"
137       "https://slack.com/api/files.upload"
138   artifacts:
139     paths:
140       - ${VERUS_CLI_WINDOWS}
141       - ${VERUS_CLI_WINDOWS}.sha256
142     expire_in: 1 week
143 ########################################################################################################################
144 ####END####                                             WINDOWS                                              ####END####
145 ########################################################################################################################
146 ####START####                                            MACOS                                             ####START####
147 ########################################################################################################################
148 build:mac:
149   variables:
150     CONFIGURE_FLAGS: --with-gcc-arch=x86-64
151   stage: build
152   tags: ["Mojave"]
153   cache:
154     key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
155     paths:
156       - depends
157   script:
158     - zcutil/build-mac.sh -j$(sysctl -n hw.physicalcpu)
159     - mkdir verus-cli
160     - cp src/verus
161         src/verusd
162         doc/man/verus-cli/mac/README.txt
163         zcutil/fetch-params.sh
164         verus-cli
165     - mv verus-cli/fetch-params.sh verus-cli/fetch-params
166     - chmod +x verus-cli/fetch-params
167     - chmod +x verus-cli/verus
168     - chmod +x verus-cli/verusd
169     - tar -czvf ${VERUS_CLI_MACOS} verus-cli
170     - shasum -a 256 ${VERUS_CLI_MACOS} > ${VERUS_CLI_MACOS}.sha256
171     - curl -F file=@"${VERUS_CLI_MACOS}"
172       -F channels="${CLI_POST_CHANNEL}"
173       -F initial_comment="${POST_MESSAGE}"
174       -H "${SLACK_BOT_AUTH}"
175       "https://slack.com/api/files.upload"
176   artifacts:
177     paths:
178       - ${VERUS_CLI_MACOS}
179       - ${VERUS_CLI_MACOS}.sha256
180     expire_in: 1 week
181 ########################################################################################################################
182 ####END####                                              MACOS                                               ####END####
183 ########################################################################################################################
184 ########################################################################################################################
185 ####END####                                           Build Stage                                            ####END####
186 ########################################################################################################################
187 ########################################################################################################################
188 ########################################################################################################################
189 ########################################################################################################################
190 ####START####     Test stage: Test functionality of komodo binaries. Produce code quality and SAST reports. ####START####
191 ########################################################################################################################
192 ########################################################################################################################
193 ########################################################################################################################
194 ####START####                                        Code Quality                                          ####START####
195 ########################################################################################################################
196 .code_quality:
197   image: docker:stable
198   variables:
199     DOCKER_DRIVER: overlay2
200   allow_failure: true
201   services:
202     - docker:stable-dind
203   script:
204     - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
205     - docker run
206       --env SOURCE_CODE="$PWD"
207       --volume "$PWD":/code
208       --volume /var/run/docker.sock:/var/run/docker.sock
209       "registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
210   artifacts:
211     paths: [gl-code-quality-report.json]
212 ########################################################################################################################
213 ####END####                                          Code Quality                                            ####END####
214 ########################################################################################################################
215 ########################################################################################################################
216 ####START####                              Static Application Security Tests                               ####START####
217 ########################################################################################################################
218 .sast:
219   image: docker:stable
220   variables:
221     DOCKER_DRIVER: overlay2
222   allow_failure: true
223   services:
224     - docker:stable-dind
225   script:
226     - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
227     - docker run
228       --env SAST_CONFIDENCE_LEVEL="${SAST_CONFIDENCE_LEVEL:-3}"
229       --volume "$PWD:/code"
230       --volume /var/run/docker.sock:/var/run/docker.sock
231       "registry.gitlab.com/gitlab-org/security-products/sast:$SP_VERSION" /app/bin/run /code
232   artifacts:
233     paths: [gl-sast-report.json]
234 ########################################################################################################################
235 ####END####                                Static Application Security Tests                                 ####END####
236 ########################################################################################################################
237 ########################################################################################################################
238 ####START####                            Run Verus CLI on Ubuntu Xenial (16.04)                            ####START####
239 ########################################################################################################################
240 .ubuntu:xenial:
241   image: ubuntu:xenial
242   variables:
243     DOCKER_DRIVER: overlay2
244   stage: test
245   before_script:
246     - apt update && apt install -y wget libgomp1 python
247     - rm -rf /root/.komodo || true
248     - mv .komodo /root/ || true
249   script:
250     - tar -xzvf ${VERUS_CLI_LINUX_AMD64}
251     - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
252     - python qa/verus-cli-tests/verus-cli-tester.py
253   after_script:
254     - mv /root/.komodo ./ || true
255   cache:
256     key: ${CI_JOB_NAME}
257     paths: [.komodo]
258   artifacts:
259     paths: [log.txt]
260     expire_in: 1 week
261   dependencies:
262     - build:linux
263 ########################################################################################################################
264 ####END####                               Run Verus CLI on Ubuntu Xenial (16.04)                             ####END####
265 ########################################################################################################################
266 ########################################################################################################################
267 ####START####                             Run Verus CLI on Ubuntu Bionic (18.04)                           ####START####
268 ########################################################################################################################
269 .ubuntu:bionic:
270   image: ubuntu:bionic
271   variables:
272     DOCKER_DRIVER: overlay2
273   stage: test
274   before_script:
275     - apt update && apt install -y wget libgomp1 python
276     - rm -rf /root/.komodo || true
277     - mv .komodo /root/ || true
278   script:
279     - tar -xzvf ${VERUS_CLI_LINUX_AMD64}
280     - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
281     - python qa/verus-cli-tests/verus-cli-tester.py
282   after_script:
283     - mv /root/.komodo ./ || true
284   cache:
285     key: ${CI_JOB_NAME}
286     paths: [.komodo]
287   artifacts:
288     paths: [log.txt]
289     expire_in: 1 week
290   dependencies:
291     - build:linux
292 ########################################################################################################################
293 ####END####                               Run Verus CLI on Ubuntu Bionic (18.04)                             ####END####
294 ########################################################################################################################
295 ########################################################################################################################
296 ####START####                             Run Verus CLI on MacOS Sierra (10.12.6)                          ####START####
297 ########################################################################################################################
298 .macos:sierra:
299   stage: test
300   tags: ["Sierra"]
301   script:
302     - tar -xzvf $VERUS_CLI_MACOS
303     - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
304     - python qa/verus-cli-tests/verus-cli-tester.py
305   artifacts:
306     paths: [log.txt]
307     expire_in: 1 week
308   dependencies:
309     - build:mac
310 ########################################################################################################################
311 ####END####                               Run Verus CLI on MacOS Sierra (10.12.6)                            ####END####
312 ########################################################################################################################
313 ########################################################################################################################
314 ####START####                          Run Verus CLI on MacOS High Sierra (10.12.6)                        ####START####
315 ########################################################################################################################
316 .macos:high-sierra:
317   stage: test
318   tags: ["High Sierra"]
319   script:
320     - tar -xzvf ${VERUS_CLI_MACOS}
321     - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
322     - python qa/verus-cli-tests/verus-cli-tester.py
323   artifacts:
324     paths: [log.txt]
325     expire_in: 1 week
326   dependencies:
327     - build:mac
328 ########################################################################################################################
329 ####START####                          Run Verus CLI on MacOS High Sierra (10.12.6)                        ####START####
330 ########################################################################################################################
331 ########################################################################################################################
332 ####START####                              Run Verus CLI on Windows 10                                     ####START####
333 ########################################################################################################################
334 .windows:10:
335   stage: test
336   tags: ["Windows 10"]
337   script:
338     - PowerShell Expand-Archive -Path %VERUS_CLI_WINDOWS% -DestinationPath %CI_PROJECT_DIR%
339     - set PATH=%PATH%;%CI_PROJECT_DIR%\verus-cli
340     - qa\verus-cli-tests\verus-cli-tester.py
341   artifacts:
342     paths: [log.txt]
343     expire_in: 1 week
344   dependencies:
345     - build:windows
346 ########################################################################################################################
347 ####END####                                Run Verus CLI on Windows 10                                       ####END####
348 ########################################################################################################################
349 ########################################################################################################################
350 ####END####                                           Test Stage                                             ####END####
351 ########################################################################################################################
352 ########################################################################################################################
353 ####START####                                         Deploy                                               ####START####
354 ########################################################################################################################
355 deploy:
356   stage: deploy
357   image: google/cloud-sdk:alpine
358   variables:
359     DOCKER_DRIVER: overlay2
360   dependencies:
361     - build:linux
362     - build:windows
363     - build:mac
364     - build:linux:arm64
365   script:
366     - mkdir Windows && mkdir Linux && mkdir MacOS
367     - cp ${VERUS_CLI_WINDOWS} Windows
368     - cp ${VERUS_CLI_LINUX_AMD64} Linux
369     - cp ${VERUS_CLI_ARM64_LINUX} Linux
370     - cp ${VERUS_CLI_MACOS} MacOS
371     - echo "$AUTH_KEY" > AUTH_KEY.json &&
372       gcloud auth activate-service-account
373       --key-file AUTH_KEY.json
374     - gsutil cp -r Windows MacOS Linux  $STAGING/${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}
375   artifacts:
376     paths:
377       - ${VERUS_CLI_LINUX_AMD64}
378       - ${VERUS_CLI_LINUX_AMD64}.sha256
379       - ${VERUS_CLI_WINDOWS}
380       - ${VERUS_CLI_WINDOWS}.sha256
381       - ${VERUS_CLI_MACOS}
382       - ${VERUS_CLI_MACOS}.sha256
383       - ${VERUS_CLI_ARM64_LINUX}
384       - ${VERUS_CLI_ARM64_LINUX}.sha256
385     expire_in: 1 week
386 ########################################################################################################################
387 ####END####                                           Deploy                                                 ####END####
388 ########################################################################################################################
This page took 0.044838 seconds and 4 git commands to generate.