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