Browse Source

Asher dev (#88)

Introducing verus-cli tests, adding staging destination.
pull/89/head
Asher Dawes 6 years ago
committed by GitHub
parent
commit
e7f4832f79
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 200
      .gitlab-ci.yml
  2. 1
      README.md
  3. 2
      kmd/linux/verus-cli/README.txt
  4. 0
      kmd/linux/verus-cli/fetch-params
  5. 2
      kmd/linux/verus-cli/verus
  6. 2
      kmd/linux/verus-cli/verusd
  7. 0
      kmd/mac/verus-cli/fetch-params
  8. 35
      makeDistrib.sh
  9. 7
      makeReleaseLinux.sh
  10. 4
      makeReleaseMac.sh
  11. 39
      qa/verus-cli-tests/verus-cli-tester.py

200
.gitlab-ci.yml

@ -4,14 +4,15 @@ stages:
- deploy
variables:
VERSION: "0.3.9"
AGAMA_ARTIFACTS_LINUX: "linux64.tar.gz"
AGAMA_ARTIFACTS_MACOS: "osx.tar.gz"
AGAMA_ARTIFACTS_WINDOWS: "win64.zip"
VERUS_CLI_DEBIAN: "verus-cli-v${VERSION}-beta-amd64.deb"
VERUS_CLI_LINUX_PORTABLE: "verus-cli-linux-v$VERSION-beta.tar.gz"
VERUS_CLI_WINDOWS_PORTABLE: "verus-cli-windows-v$VERSION-beta.zip"
VERUS_CLI_MACOS_PORTABLE: "verus-cli-mac-v$VERSION-beta.tar.gz"
VERSION: 0.3.9
AGAMA_ARTIFACTS_LINUX: linux64.tar.gz
AGAMA_ARTIFACTS_MACOS: osx.tar.gz
AGAMA_ARTIFACTS_WINDOWS: win64.zip
VERUS_CLI_DEBIAN: verus-cli-v${VERSION}-beta-amd64.deb
VERUS_CLI_LINUX_PORTABLE: verus-cli-linux-v$VERSION-beta.tar.gz
VERUS_CLI_WINDOWS_PORTABLE: verus-cli-windows-v$VERSION-beta.zip
VERUS_CLI_MACOS_PORTABLE: verus-cli-mac-v$VERSION-beta.tar.gz
build:linux:
image: asherd/veruscoin-cross-compiler:linux
@ -23,23 +24,26 @@ build:linux:
paths:
- depends/built
- .ccache
before_script:
- mkdir .ccache || echo ccache exists
- ln -s $PWD/.ccache /root/.ccache
before_script: # Setup Cache
- rm -rf /root/.ccache || true
- mv .ccache /root/ || true
script:
- "./zcutil/build.sh"
##- "./zcutil/build-debian-package.sh"
- "./makeReleaseLinux.sh"
- "cd kmd/linux"
- "tar -czvf $VERUS_CLI_LINUX_PORTABLE verus-cli"
- "mv $VERUS_CLI_LINUX_PORTABLE ../.."
- "mv verus-cli linux64"
- "tar -czvf $AGAMA_ARTIFACTS_LINUX linux64"
- "mv $AGAMA_ARTIFACTS_LINUX ../.."
- zcutil/build.sh -j4
- ./makeReleaseLinux.sh
- dos2unix kmd/linux/verus-cli/README.txt
- tar -C kmd/linux/ -czvf $VERUS_CLI_LINUX_PORTABLE verus-cli ./
- mv kmd/linux/verus-cli kmd/linux/linux64
- tar -C kmd/linux/ -czvf $AGAMA_ARTIFACTS_LINUX linux64 ./
after_script:
- mv /root/.ccache ./ || true
cache:
key: ${CI_JOB_NAME}
paths:
- depends/built
- .ccache
artifacts:
paths:
- $VERUS_CLI_LINUX_PORTABLE
## - $VERUS_CLI_DEBIAN
- $AGAMA_ARTIFACTS_LINUX
expire_in: 1 week
@ -59,19 +63,17 @@ build:windows:
- mkdir .ccache || echo ccache exists
- ln -s $PWD/.ccache /root/.ccache
- mkdir .zcash-params || echo zcash-params exists
- ln -s $PWD/.zcash-params /root/.zcash-params
- mkdir .cargo || echo .cargo exists
- ln -s $PWD/.cargo /root/.cargo
script:
## add dos2unix
- "./zcutil/build-win.sh"
- "./makeReleaseWindows.sh"
- "cd kmd/windows/"
- "zip -r $VERUS_CLI_WINDOWS_PORTABLE verus-cli"
- "mv $VERUS_CLI_WINDOWS_PORTABLE ../.."
- "mv verus-cli win64"
- "zip -r $AGAMA_ARTIFACTS_WINDOWS win64"
- "mv $AGAMA_ARTIFACTS_WINDOWS ../.."
- zcutil/build-win.sh
- ./makeReleaseWindows.sh
- cd kmd/windows/
- zip -r $VERUS_CLI_WINDOWS_PORTABLE verus-cli
- mv $VERUS_CLI_WINDOWS_PORTABLE ../..
- mv verus-cli win64
- zip -r $AGAMA_ARTIFACTS_WINDOWS win64
- mv $AGAMA_ARTIFACTS_WINDOWS ../..
artifacts:
paths:
- $VERUS_CLI_WINDOWS_PORTABLE
@ -81,20 +83,18 @@ build:windows:
build:mac:
stage: build
tags: ["osx"]
tags: ["High Sierra"]
cache:
key: ${CI_JOB_NAME}
paths:
- depends/built
script:
- "./zcutil/build-mac.sh | xcpretty"
- "./makeReleaseMac.sh"
- "cd kmd/mac/"
- "tar -czvf $VERUS_CLI_MACOS_PORTABLE verus-cli"
- "mv verus-cli-mac-v$VERSION-beta.tar.gz ../.."
- "mv verus-cli osx"
- "tar -czvf $AGAMA_ARTIFACTS_MACOS osx"
- "mv $AGAMA_ARTIFACTS_MACOS ../.."
- zcutil/build-mac.sh | xcpretty
- ./makeReleaseMac.sh
- dos2unix kmd/mac/verus-cli/README.txt
- tar -C kmd/mac/ -czvf $VERUS_CLI_MACOS_PORTABLE verus-cli ./
- mv kmd/mac/verus-cli kmd/mac/osx
- tar -C kmd/mac/ -czvf $AGAMA_ARTIFACTS_MACOS osx ./
artifacts:
paths:
- $VERUS_CLI_MACOS_PORTABLE
@ -138,24 +138,118 @@ sast:
paths: [gl-sast-report.json]
license_management:
image: docker:stable
variables:
DOCKER_DRIVER: overlay2
allow_failure: true
services:
- docker:stable-dind
script:
- export LICENSE_MANAGEMENT_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
- docker run
--volume "$PWD:/code"
"registry.gitlab.com/gitlab-org/security-products/license-management:$LICENSE_MANAGEMENT_VERSION" analyze /code
artifacts:
paths: [gl-license-management-report.json]
ubuntu:xenial:
image: ubuntu:xenial
variables:
DOCKER_DRIVER: overlay2
stage: test
before_script:
- apt update && apt install -y wget g++-multilib libcurl3 python
script:
- tar -xzvf $VERUS_CLI_LINUX_PORTABLE
- export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
- python qa/verus-cli-tests/verus-cli-tester.py
artifacts:
paths: [log.txt]
expire_in: 1 week
dependencies:
- build:linux
ubuntu:bionic:
image: ubuntu:bionic
variables:
DOCKER_DRIVER: overlay2
stage: test
before_script:
- apt update && apt install -y wget g++-multilib libcurl3 python
script:
- tar -xzvf $VERUS_CLI_LINUX_PORTABLE
- export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
- python qa/verus-cli-tests/verus-cli-tester.py
artifacts:
paths: [log.txt]
expire_in: 1 week
dependencies:
- build:linux
osx:sierra:
stage: test
tags: ["Sierra"]
script:
- tar -xzvf $VERUS_CLI_MACOS_PORTABLE
- export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
- python qa/verus-cli-tests/verus-cli-tester.py
artifacts:
paths: [log.txt]
expire_in: 1 week
dependencies:
- build:mac
osx:high-sierra:
stage: test
tags: ["High Sierra"]
script:
- tar -xzvf $VERUS_CLI_MACOS_PORTABLE
- export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
- python qa/verus-cli-tests/verus-cli-tester.py
artifacts:
paths: [log.txt]
expire_in: 1 week
dependencies:
- build:mac
windows:10:
stage: test
tags: ["Windows 10"]
script:
- PowerShell Expand-Archive -Path %VERUS_CLI_WINDOWS_PORTABLE% -DestinationPath %CI_PROJECT_DIR%
- set PATH=%PATH%;%CI_PROJECT_DIR%\verus-cli
- qa\verus-cli-tests\verus-cli-tester.py
artifacts:
paths: [log.txt]
expire_in: 1 week
dependencies:
- build:windows
deploy:
stage: deploy
image: google/cloud-sdk:alpine
variables:
DOCKER_DRIVER: overlay2
dependencies:
- build:linux
- build:windows
- build:mac
- build:linux
- build:windows
- build:mac
script:
- "mkdir $CI_COMMIT_REF_NAME"
- "cd $CI_COMMIT_REF_NAME"
- "mkdir Windows && mkdir Linux @&& mkdir MacOS"
- "cd .."
- "mv $VERUS_CLI_WINDOWS_PORTABLE $AGAMA_ARTIFACTS_WINDOWS $CI_COMMIT_REF_NAME/Windows"
- "mv $VERUS_CLI_LINUX_PORTABLE $AGAMA_ARTIFACTS_LINUX $CI_COMMIT_REF_NAME/Linux"
- "mv $AGAMA_ARTIFACTS_MACOS $VERUS_CLI_MACOS_PORTABLE $CI_COMMIT_REF_NAME/MacOS"
- 'echo "$AUTH_KEY" > AUTH_KEY.json'
- "gcloud auth activate-service-account --key-file AUTH_KEY.json"
- "gsutil rsync -r $CI_COMMIT_REF_NAME/ $STAGING/VerusCoin/$CI_COMMIT_REF_NAME/"
- mkdir -p $CI_COMMIT_REF_NAME/Windows
- mkdir -p $CI_COMMIT_REF_NAME/Linux
- mkdir -p $CI_COMMIT_REF_NAME/MacOS
- mv $VERUS_CLI_WINDOWS_PORTABLE $AGAMA_ARTIFACTS_WINDOWS $CI_COMMIT_REF_NAME/Windows
- mv $VERUS_CLI_LINUX_PORTABLE $AGAMA_ARTIFACTS_LINUX $CI_COMMIT_REF_NAME/Linux
- mv $VERUS_CLI_MACOS_PORTABLE $AGAMA_ARTIFACTS_MACOS $CI_COMMIT_REF_NAME/MacOS
- echo "$AUTH_KEY" > AUTH_KEY.json
- gcloud auth activate-service-account --key-file AUTH_KEY.json
- gsutil rsync -r $CI_COMMIT_REF_NAME/ $STAGING/VerusCoin/$CI_COMMIT_REF_NAME/

1
README.md

@ -71,7 +71,6 @@ Building for Windows:
```
./zcutil/build-win.sh
```
VerusCoin
------
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.

2
kmd/linux/verus-cli/README.txt

@ -5,7 +5,7 @@ komodo-cli - VerusCoin's Komodo command line utility
verus - wrapper for komodo-cli that applies the command to the VRSC coin
verusd - wrapper for komodod that sets the VerusCoin parameters to defaults properly
The first time on a new system you will need to run ./fetch-params.sh before using komodod or verusd.
The first time on a new system you will need to run ./fetch-params before using komodod or verusd.
Run ./verusd to launch komodod, and use verus to run commands such as:
./verus stop

0
kmd/linux/verus-cli/fetch-params.sh → kmd/linux/verus-cli/fetch-params

2
kmd/linux/verus-cli/verus

@ -2,4 +2,4 @@
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd $DIR
komodo-cli -ac_name=VRSC "$@"
./komodo-cli -ac_name=VRSC "$@"

2
kmd/linux/verus-cli/verusd

@ -1,4 +1,4 @@
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd $DIR
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 "$@"
./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 "$@"

0
kmd/mac/verus-cli/fetch-params.sh → kmd/mac/verus-cli/fetch-params

35
makeDistrib.sh

@ -1,35 +0,0 @@
#!/bin/sh
TMP_DIR=~/tmp/komodo
# make a tmp directory
mkdir -p $TMP_DIR
echo "making $TMP_DIR"
binaries=("komodo-cli" "komodod")
for binary in "${binaries[@]}";
do
echo "copying $binary to $TMP_DIR"
cp src/$binary $TMP_DIR
# find the dylibs to copy for komodod
DYLIBS=`otool -L $TMP_DIR/$binary | grep "/usr/local" | awk -F' ' '{ print $1 }'`
echo "copying $DYLIBS to $TMP_DIR"
# copy the dylibs to the tmpdir
for dylib in $DYLIBS; do cp -rf $dylib $TMP_DIR/; done
# modify komodod to point to dylibs
echo "modifying $binary to use local libraries"
for dylib in $DYLIBS; do install_name_tool -change $dylib @executable_path/`basename $dylib` $TMP_DIR/$binary; done;
done

7
makeReleaseLinux.sh

@ -1,5 +1,8 @@
#!/bin/sh
cp src/komodod src/komodo-cli kmd/linux/verus-cli
chmod +x kmd/linux/verus-cli/komodo*
chmod +x kmd/linux/verus-cli/veru*
chmod +x kmd/linux/verus-cli/komodo
chmod +x kmd/linux/verus-cli/komodod
chmod +x kmd/linux/verus-cli/verus
chmod +x kmd/linux/verus-cli/verusd
chmod +x kmd/linux/verus-cli/fetch-params

4
makeReleaseMac.sh

@ -65,4 +65,8 @@ do
chmod +x $KMD_DIR/$binary
done
chmod +x kmd/mac/verus-cli/fetch-params
chmod +x kmd/linux/verus-cli/verus
chmod +x kmd/linux/verus-cli/verusd

39
qa/verus-cli-tests/verus-cli-tester.py

@ -0,0 +1,39 @@
from subprocess import Popen, check_output, call
from time import sleep
from os import environ, path
daemon_wrapper = "verusd"
cli_wrapper = "verus"
daemon_runtime_seconds = 600
cli_commands = ["getblockchaininfo", "getmininginfo", "getwalletinfo", "stop"]
def start_daemon(daemon_wrapper):
try:
Popen(daemon_wrapper, shell=True, close_fds=True)
except:
exit(1)
def fetch_zcash_params():
try:
call("fetch-params", shell=True)
except:
exit(1)
def run_cli_commands(cli_wrapper, commands):
for command in commands:
command = "%(cli_wrapper)s %(command)s" % locals()
try:
with open(path.join(environ["CI_PROJECT_DIR"], "log.txt"), "a") as log:
command_output = check_output(command, shell=True)
log.write("%(command_output)s\n" % locals())
except:
exit(1)
fetch_zcash_params()
start_daemon(daemon_wrapper)
sleep(daemon_runtime_seconds)
run_cli_commands(cli_wrapper, cli_commands)
Loading…
Cancel
Save