Skip to content

Commit e7f4832

Browse files
authored
Asher dev (dimxy#88)
Introducing verus-cli tests, adding staging destination.
1 parent 8c78e3f commit e7f4832

File tree

11 files changed

+198
-94
lines changed

11 files changed

+198
-94
lines changed

.gitlab-ci.yml

+147-53
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@ stages:
44
- deploy
55

66
variables:
7-
VERSION: "0.3.9"
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"
7+
VERSION: 0.3.9
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+
1516

1617
build:linux:
1718
image: asherd/veruscoin-cross-compiler:linux
@@ -23,23 +24,26 @@ build:linux:
2324
paths:
2425
- depends/built
2526
- .ccache
26-
before_script:
27-
- mkdir .ccache || echo ccache exists
28-
- ln -s $PWD/.ccache /root/.ccache
27+
before_script: # Setup Cache
28+
- rm -rf /root/.ccache || true
29+
- mv .ccache /root/ || true
2930
script:
30-
- "./zcutil/build.sh"
31-
##- "./zcutil/build-debian-package.sh"
32-
- "./makeReleaseLinux.sh"
33-
- "cd kmd/linux"
34-
- "tar -czvf $VERUS_CLI_LINUX_PORTABLE verus-cli"
35-
- "mv $VERUS_CLI_LINUX_PORTABLE ../.."
36-
- "mv verus-cli linux64"
37-
- "tar -czvf $AGAMA_ARTIFACTS_LINUX linux64"
38-
- "mv $AGAMA_ARTIFACTS_LINUX ../.."
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
3944
artifacts:
4045
paths:
4146
- $VERUS_CLI_LINUX_PORTABLE
42-
## - $VERUS_CLI_DEBIAN
4347
- $AGAMA_ARTIFACTS_LINUX
4448
expire_in: 1 week
4549

@@ -59,19 +63,17 @@ build:windows:
5963
- mkdir .ccache || echo ccache exists
6064
- ln -s $PWD/.ccache /root/.ccache
6165
- mkdir .zcash-params || echo zcash-params exists
62-
- ln -s $PWD/.zcash-params /root/.zcash-params
6366
- mkdir .cargo || echo .cargo exists
6467
- ln -s $PWD/.cargo /root/.cargo
6568
script:
66-
## add dos2unix
67-
- "./zcutil/build-win.sh"
68-
- "./makeReleaseWindows.sh"
69-
- "cd kmd/windows/"
70-
- "zip -r $VERUS_CLI_WINDOWS_PORTABLE verus-cli"
71-
- "mv $VERUS_CLI_WINDOWS_PORTABLE ../.."
72-
- "mv verus-cli win64"
73-
- "zip -r $AGAMA_ARTIFACTS_WINDOWS win64"
74-
- "mv $AGAMA_ARTIFACTS_WINDOWS ../.."
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 ../..
7577
artifacts:
7678
paths:
7779
- $VERUS_CLI_WINDOWS_PORTABLE
@@ -81,20 +83,18 @@ build:windows:
8183

8284
build:mac:
8385
stage: build
84-
tags: ["osx"]
86+
tags: ["High Sierra"]
8587
cache:
8688
key: ${CI_JOB_NAME}
8789
paths:
8890
- depends/built
8991
script:
90-
- "./zcutil/build-mac.sh | xcpretty"
91-
- "./makeReleaseMac.sh"
92-
- "cd kmd/mac/"
93-
- "tar -czvf $VERUS_CLI_MACOS_PORTABLE verus-cli"
94-
- "mv verus-cli-mac-v$VERSION-beta.tar.gz ../.."
95-
- "mv verus-cli osx"
96-
- "tar -czvf $AGAMA_ARTIFACTS_MACOS osx"
97-
- "mv $AGAMA_ARTIFACTS_MACOS ../.."
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 ./
9898
artifacts:
9999
paths:
100100
- $VERUS_CLI_MACOS_PORTABLE
@@ -138,24 +138,118 @@ sast:
138138
paths: [gl-sast-report.json]
139139

140140

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:
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:
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+
141235
deploy:
142236
stage: deploy
143237
image: google/cloud-sdk:alpine
144238
variables:
145239
DOCKER_DRIVER: overlay2
146240
dependencies:
147-
- build:linux
148-
- build:windows
149-
- build:mac
241+
- build:linux
242+
- build:windows
243+
- build:mac
150244
script:
151-
- "mkdir $CI_COMMIT_REF_NAME"
152-
- "cd $CI_COMMIT_REF_NAME"
153-
- "mkdir Windows && mkdir Linux @&& mkdir MacOS"
154-
- "cd .."
155-
- "mv $VERUS_CLI_WINDOWS_PORTABLE $AGAMA_ARTIFACTS_WINDOWS $CI_COMMIT_REF_NAME/Windows"
156-
- "mv $VERUS_CLI_LINUX_PORTABLE $AGAMA_ARTIFACTS_LINUX $CI_COMMIT_REF_NAME/Linux"
157-
- "mv $AGAMA_ARTIFACTS_MACOS $VERUS_CLI_MACOS_PORTABLE $CI_COMMIT_REF_NAME/MacOS"
158-
- 'echo "$AUTH_KEY" > AUTH_KEY.json'
159-
- "gcloud auth activate-service-account --key-file AUTH_KEY.json"
160-
- "gsutil rsync -r $CI_COMMIT_REF_NAME/ $STAGING/VerusCoin/$CI_COMMIT_REF_NAME/"
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+
161255

README.md

-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@ Building for Windows:
7171
```
7272
./zcutil/build-win.sh
7373
```
74-
7574
VerusCoin
7675
------
7776
We develop on dev and some other branches and produce releases of of the master branch, using pull requests to manage what goes into master.

kmd/linux/verus-cli/README.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ komodo-cli - VerusCoin's Komodo command line utility
55
verus - wrapper for komodo-cli that applies the command to the VRSC coin
66
verusd - wrapper for komodod that sets the VerusCoin parameters to defaults properly
77

8-
The first time on a new system you will need to run ./fetch-params.sh before using komodod or verusd.
8+
The first time on a new system you will need to run ./fetch-params before using komodod or verusd.
99

1010
Run ./verusd to launch komodod, and use verus to run commands such as:
1111
./verus stop
File renamed without changes.

kmd/linux/verus-cli/verus

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
33
cd $DIR
44

5-
komodo-cli -ac_name=VRSC "$@"
5+
./komodo-cli -ac_name=VRSC "$@"

kmd/linux/verus-cli/verusd

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
#!/bin/bash
22
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
33
cd $DIR
4-
komodod -ac_name=VRSC -ac_algo=verushash -ac_cc=1 -ac_supply=0 -ac_eras=3 -ac_reward=0,38400000000,2400000000 -ac_halving=1,43200,1051920 -ac_decay=100000000,0,0 -ac_end=10080,226080,0 -addnode=185.25.48.236 -addnode=185.64.105.111 -ac_timelockgte=19200000000 -ac_timeunlockfrom=129600 -ac_timeunlockto=1180800 -ac_veruspos=50 -gen -genproclimit=0 "$@"
4+
./komodod -ac_name=VRSC -ac_algo=verushash -ac_cc=1 -ac_supply=0 -ac_eras=3 -ac_reward=0,38400000000,2400000000 -ac_halving=1,43200,1051920 -ac_decay=100000000,0,0 -ac_end=10080,226080,0 -addnode=185.25.48.236 -addnode=185.64.105.111 -ac_timelockgte=19200000000 -ac_timeunlockfrom=129600 -ac_timeunlockto=1180800 -ac_veruspos=50 -gen -genproclimit=0 "$@"
File renamed without changes.

makeDistrib.sh

-35
This file was deleted.

makeReleaseLinux.sh

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
#!/bin/sh
22

33
cp src/komodod src/komodo-cli kmd/linux/verus-cli
4-
chmod +x kmd/linux/verus-cli/komodo*
5-
chmod +x kmd/linux/verus-cli/veru*
4+
chmod +x kmd/linux/verus-cli/komodo
5+
chmod +x kmd/linux/verus-cli/komodod
6+
chmod +x kmd/linux/verus-cli/verus
7+
chmod +x kmd/linux/verus-cli/verusd
8+
chmod +x kmd/linux/verus-cli/fetch-params

makeReleaseMac.sh

+4
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,8 @@ do
6565
chmod +x $KMD_DIR/$binary
6666
done
6767

68+
chmod +x kmd/mac/verus-cli/fetch-params
69+
chmod +x kmd/linux/verus-cli/verus
70+
chmod +x kmd/linux/verus-cli/verusd
71+
6872

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
from subprocess import Popen, check_output, call
2+
from time import sleep
3+
from os import environ, path
4+
5+
daemon_wrapper = "verusd"
6+
cli_wrapper = "verus"
7+
daemon_runtime_seconds = 600
8+
cli_commands = ["getblockchaininfo", "getmininginfo", "getwalletinfo", "stop"]
9+
10+
11+
def start_daemon(daemon_wrapper):
12+
try:
13+
Popen(daemon_wrapper, shell=True, close_fds=True)
14+
except:
15+
exit(1)
16+
17+
18+
def fetch_zcash_params():
19+
try:
20+
call("fetch-params", shell=True)
21+
except:
22+
exit(1)
23+
24+
25+
def run_cli_commands(cli_wrapper, commands):
26+
for command in commands:
27+
command = "%(cli_wrapper)s %(command)s" % locals()
28+
try:
29+
with open(path.join(environ["CI_PROJECT_DIR"], "log.txt"), "a") as log:
30+
command_output = check_output(command, shell=True)
31+
log.write("%(command_output)s\n" % locals())
32+
except:
33+
exit(1)
34+
35+
36+
fetch_zcash_params()
37+
start_daemon(daemon_wrapper)
38+
sleep(daemon_runtime_seconds)
39+
run_cli_commands(cli_wrapper, cli_commands)

0 commit comments

Comments
 (0)