]> Git Repo - VerusCoin.git/blob - .gitlab-ci.yml
gitlab yml fix
[VerusCoin.git] / .gitlab-ci.yml
1 stages:
2   - build
3   - test
4   - package
5   - deploy
6
7
8 variables:
9   VERSION: 0.3.12
10   AGAMA_ARTIFACTS_LINUX: linux64.tar.gz
11   AGAMA_ARTIFACTS_MACOS: osx.tar.gz
12   AGAMA_ARTIFACTS_WINDOWS: win64.zip
13   VERUS_CLI_DEBIAN: verus-cli-v${VERSION}-beta-amd64.deb
14   VERUS_CLI_LINUX_PORTABLE: verus-cli-linux-v$VERSION-beta.tar.gz
15   VERUS_CLI_WINDOWS_PORTABLE: verus-cli-windows-v$VERSION-beta.zip
16   VERUS_CLI_MACOS_PORTABLE: verus-cli-mac-v$VERSION-beta.tar.gz
17   EASYDEX_GUI_ARTIFACT: build.tar.gz
18
19 build:linux:
20   image: asherd/veruscoin-cross-compiler:linux
21   variables:
22     DOCKER_DRIVER: overlay2
23   stage: build
24   before_script: # Setup Cache
25     - rm -rf /root/.ccache || true
26     - mv .ccache /root/ || true
27   script:
28     - zcutil/build.sh -j4
29     - ./makeReleaseLinux.sh
30     - dos2unix kmd/linux/verus-cli/README.txt
31     - tar -C kmd/linux/ -czvf $VERUS_CLI_LINUX_PORTABLE verus-cli ./
32     - mv kmd/linux/verus-cli kmd/linux/linux64
33     - tar -C kmd/linux/ -czvf $AGAMA_ARTIFACTS_LINUX linux64 ./
34   after_script:
35     - mv /root/.ccache ./ || true
36   cache:
37     key: ${CI_JOB_NAME}
38     paths:
39     - depends/built
40     - .ccache
41   artifacts:
42     paths:
43     - $VERUS_CLI_LINUX_PORTABLE
44     - $AGAMA_ARTIFACTS_LINUX
45     expire_in: 1 week
46
47
48 build:windows:
49   image: asherd/veruscoin-cross-compiler:latest
50   variables:
51     DOCKER_DRIVER: overlay2
52   stage: build
53   cache:
54     key: ${CI_JOB_NAME}
55     paths:
56     - depends/built
57     - .ccache
58     - .cargo
59   before_script:
60     - mkdir .ccache  || echo ccache exists
61     - ln -s $PWD/.ccache /root/.ccache
62     - mkdir .zcash-params || echo zcash-params exists
63     - mkdir .cargo || echo .cargo exists
64     - ln -s $PWD/.cargo /root/.cargo
65   script:
66     - zcutil/build-win.sh
67     - ./makeReleaseWindows.sh
68     - cd kmd/windows/
69     - zip -r $VERUS_CLI_WINDOWS_PORTABLE verus-cli
70     - mv $VERUS_CLI_WINDOWS_PORTABLE ../..
71     - mv verus-cli win64
72     - zip -r $AGAMA_ARTIFACTS_WINDOWS win64
73     - mv $AGAMA_ARTIFACTS_WINDOWS ../..
74   artifacts:
75     paths:
76     - $VERUS_CLI_WINDOWS_PORTABLE
77     - $AGAMA_ARTIFACTS_WINDOWS
78     expire_in: 1 week
79
80
81 build:mac:
82   stage: build
83   tags: ["High Sierra"]
84   cache:
85     key: ${CI_JOB_NAME}
86     paths:
87     - depends/built
88   script:
89     - zcutil/build-mac.sh | xcpretty
90     - ./makeReleaseMac.sh
91     - dos2unix kmd/mac/verus-cli/README.txt
92     - tar -C kmd/mac/ -czvf $VERUS_CLI_MACOS_PORTABLE verus-cli ./
93     - mv kmd/mac/verus-cli kmd/mac/osx
94     - tar -C kmd/mac/ -czvf $AGAMA_ARTIFACTS_MACOS osx ./
95   artifacts:
96     paths:
97     - $VERUS_CLI_MACOS_PORTABLE
98     - $AGAMA_ARTIFACTS_MACOS
99     expire_in: 1 week
100
101
102 code_quality:
103   image: docker:stable
104   variables:
105     DOCKER_DRIVER: overlay2
106   allow_failure: true
107   services:
108     - docker:stable-dind
109   script:
110     - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
111     - docker run
112         --env SOURCE_CODE="$PWD"
113         --volume "$PWD":/code
114         --volume /var/run/docker.sock:/var/run/docker.sock
115         "registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
116   artifacts:
117     paths: [gl-code-quality-report.json]
118
119
120 sast:
121   image: docker:stable
122   variables:
123     DOCKER_DRIVER: overlay2
124   allow_failure: true
125   services:
126     - docker:stable-dind
127   script:
128     - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
129     - docker run
130         --env SAST_CONFIDENCE_LEVEL="${SAST_CONFIDENCE_LEVEL:-3}"
131         --volume "$PWD:/code"
132         --volume /var/run/docker.sock:/var/run/docker.sock
133         "registry.gitlab.com/gitlab-org/security-products/sast:$SP_VERSION" /app/bin/run /code
134   artifacts:
135     paths: [gl-sast-report.json]
136     
137
138
139 license_management:
140   image: docker:stable
141   variables:
142     DOCKER_DRIVER: overlay2
143   allow_failure: true
144   services:
145     - docker:stable-dind
146   script:
147     - export LICENSE_MANAGEMENT_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
148     - docker run
149         --volume "$PWD:/code"
150         "registry.gitlab.com/gitlab-org/security-products/license-management:$LICENSE_MANAGEMENT_VERSION" analyze /code
151   artifacts:
152     paths: [gl-license-management-report.json]
153
154
155 ubuntu:xenial:
156   image: ubuntu:xenial
157   variables:
158     DOCKER_DRIVER: overlay2
159   stage: test
160   before_script:
161     - apt update && apt install -y wget g++-multilib libcurl3 python
162   script:
163     - tar -xzvf $VERUS_CLI_LINUX_PORTABLE
164     - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
165     - python qa/verus-cli-tests/verus-cli-tester.py
166   artifacts:
167     paths: [log.txt]
168     expire_in: 1 week
169   dependencies:
170     - build:linux
171
172
173 ubuntu:bionic:
174   image: ubuntu:bionic
175   variables:
176     DOCKER_DRIVER: overlay2
177   stage: test
178   before_script:
179     - apt update && apt install -y wget g++-multilib libcurl3 python
180   script:
181     - tar -xzvf $VERUS_CLI_LINUX_PORTABLE
182     - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
183     - python qa/verus-cli-tests/verus-cli-tester.py
184   artifacts:
185     paths: [log.txt]
186     expire_in: 1 week
187   dependencies:
188     - build:linux
189
190
191 .osx:sierra: # fetch-params.sh needs to be fixed for MacOS
192   stage: test
193   tags: ["Sierra"]
194   script:
195     - tar -xzvf $VERUS_CLI_MACOS_PORTABLE
196     - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
197     - python qa/verus-cli-tests/verus-cli-tester.py
198   artifacts:
199     paths: [log.txt]
200     expire_in: 1 week
201   dependencies:
202     - build:mac
203
204
205 .osx:high-sierra: # fetch-params.sh needs to be fixed for MacOS
206   stage: test
207   tags: ["High Sierra"]
208   script:
209     - tar -xzvf $VERUS_CLI_MACOS_PORTABLE
210     - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
211     - python qa/verus-cli-tests/verus-cli-tester.py
212   artifacts:
213     paths: [log.txt]
214     expire_in: 1 week
215   dependencies:
216     - build:mac
217
218
219 windows:10:
220   stage: test
221   tags: ["Windows 10"]
222   script:
223     - PowerShell Expand-Archive -Path %VERUS_CLI_WINDOWS_PORTABLE% -DestinationPath %CI_PROJECT_DIR%
224     - set PATH=%PATH%;%CI_PROJECT_DIR%\verus-cli
225     - qa\verus-cli-tests\verus-cli-tester.py
226   artifacts:
227     paths: [log.txt]
228     expire_in: 1 week
229   dependencies:
230     - build:windows
231
232 Package:
233   stage: package
234   image: asherd/agama-builder
235   variables:
236     DOCKER_DRIVER: overlay2
237   dependencies:
238     - build:windows
239   before_script:
240   - echo "$AUTH_KEY" > AUTH_KEY.json
241   - gcloud auth activate-service-account --key-file AUTH_KEY.json
242   - rm AUTH_KEY.json
243   - git clone https://github.com/VerusCoin/Media-Assets --single-branch -b master
244   - mkdir assets/imgs/
245   - cp Media-Assets/Logos/PNG/*  assets/imgs/
246   - git clone --single-branch -b installer-prototype https://github.com/VerusCoin/Agama.git
247   - cd agama
248   - gsutil cp $STAGING/EasyDEX-GUI/$CI_COMMIT_REF_NAME/$EASYDEX_GUI_ARTIFACT . || gsutil cp $STAGING/EasyDEX-GUI/master/$EASYDEX_GUI_ARTIFACT .
249   - tar -xzf $EASYDEX_GUI_ARTIFACT --directory gui/EasyDEX-GUI/react
250   - rm $EASYDEX_GUI_ARTIFACT
251   - npm install
252   - ./buildscripts/electron-build-windows.sh
253   - mv /build/Agama-win32-x64 ..
254   - cd ..
255   script:
256   - builder build veruscoin/zcutil/VerusCoin.xml windows
257   - ls builds
258   artifacts:
259     paths: [builds]
260
261
262 deploy:
263   stage: deploy
264   image: google/cloud-sdk:alpine
265   variables:
266     DOCKER_DRIVER: overlay2
267   dependencies:
268     - build:linux
269     - build:windows
270     - build:mac
271   script:
272     - mkdir -p $CI_COMMIT_REF_NAME/Windows
273     - mkdir -p $CI_COMMIT_REF_NAME/Linux
274     - mkdir -p $CI_COMMIT_REF_NAME/MacOS
275     - mv $VERUS_CLI_WINDOWS_PORTABLE $AGAMA_ARTIFACTS_WINDOWS $CI_COMMIT_REF_NAME/Windows
276     - mv $VERUS_CLI_LINUX_PORTABLE $AGAMA_ARTIFACTS_LINUX $CI_COMMIT_REF_NAME/Linux
277     - mv $VERUS_CLI_MACOS_PORTABLE $AGAMA_ARTIFACTS_MACOS  $CI_COMMIT_REF_NAME/MacOS
278     - echo "$AUTH_KEY" > AUTH_KEY.json
279     - gcloud auth activate-service-account --key-file AUTH_KEY.json
280     - gsutil rsync -r $CI_COMMIT_REF_NAME/ $STAGING/VerusCoin/$CI_COMMIT_REF_NAME/
281
282
This page took 0.040018 seconds and 4 git commands to generate.