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 - deploy
variables: variables:
VERSION: "0.3.9" VERSION: 0.3.9
AGAMA_ARTIFACTS_LINUX: "linux64.tar.gz" AGAMA_ARTIFACTS_LINUX: linux64.tar.gz
AGAMA_ARTIFACTS_MACOS: "osx.tar.gz" AGAMA_ARTIFACTS_MACOS: osx.tar.gz
AGAMA_ARTIFACTS_WINDOWS: "win64.zip" AGAMA_ARTIFACTS_WINDOWS: win64.zip
VERUS_CLI_DEBIAN: "verus-cli-v${VERSION}-beta-amd64.deb" VERUS_CLI_DEBIAN: verus-cli-v${VERSION}-beta-amd64.deb
VERUS_CLI_LINUX_PORTABLE: "verus-cli-linux-v$VERSION-beta.tar.gz" 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_WINDOWS_PORTABLE: verus-cli-windows-v$VERSION-beta.zip
VERUS_CLI_MACOS_PORTABLE: "verus-cli-mac-v$VERSION-beta.tar.gz" VERUS_CLI_MACOS_PORTABLE: verus-cli-mac-v$VERSION-beta.tar.gz
build:linux: build:linux:
image: asherd/veruscoin-cross-compiler:linux image: asherd/veruscoin-cross-compiler:linux
@ -23,23 +24,26 @@ build:linux:
paths: paths:
- depends/built - depends/built
- .ccache - .ccache
before_script: before_script: # Setup Cache
- mkdir .ccache || echo ccache exists - rm -rf /root/.ccache || true
- ln -s $PWD/.ccache /root/.ccache - mv .ccache /root/ || true
script: script:
- "./zcutil/build.sh" - zcutil/build.sh -j4
##- "./zcutil/build-debian-package.sh" - ./makeReleaseLinux.sh
- "./makeReleaseLinux.sh" - dos2unix kmd/linux/verus-cli/README.txt
- "cd kmd/linux" - tar -C kmd/linux/ -czvf $VERUS_CLI_LINUX_PORTABLE verus-cli ./
- "tar -czvf $VERUS_CLI_LINUX_PORTABLE verus-cli" - mv kmd/linux/verus-cli kmd/linux/linux64
- "mv $VERUS_CLI_LINUX_PORTABLE ../.." - tar -C kmd/linux/ -czvf $AGAMA_ARTIFACTS_LINUX linux64 ./
- "mv verus-cli linux64" after_script:
- "tar -czvf $AGAMA_ARTIFACTS_LINUX linux64" - mv /root/.ccache ./ || true
- "mv $AGAMA_ARTIFACTS_LINUX ../.." cache:
key: ${CI_JOB_NAME}
paths:
- depends/built
- .ccache
artifacts: artifacts:
paths: paths:
- $VERUS_CLI_LINUX_PORTABLE - $VERUS_CLI_LINUX_PORTABLE
## - $VERUS_CLI_DEBIAN
- $AGAMA_ARTIFACTS_LINUX - $AGAMA_ARTIFACTS_LINUX
expire_in: 1 week expire_in: 1 week
@ -59,19 +63,17 @@ build:windows:
- mkdir .ccache || echo ccache exists - mkdir .ccache || echo ccache exists
- ln -s $PWD/.ccache /root/.ccache - ln -s $PWD/.ccache /root/.ccache
- mkdir .zcash-params || echo zcash-params exists - mkdir .zcash-params || echo zcash-params exists
- ln -s $PWD/.zcash-params /root/.zcash-params
- mkdir .cargo || echo .cargo exists - mkdir .cargo || echo .cargo exists
- ln -s $PWD/.cargo /root/.cargo - ln -s $PWD/.cargo /root/.cargo
script: script:
## add dos2unix - zcutil/build-win.sh
- "./zcutil/build-win.sh" - ./makeReleaseWindows.sh
- "./makeReleaseWindows.sh" - cd kmd/windows/
- "cd kmd/windows/" - zip -r $VERUS_CLI_WINDOWS_PORTABLE verus-cli
- "zip -r $VERUS_CLI_WINDOWS_PORTABLE verus-cli" - mv $VERUS_CLI_WINDOWS_PORTABLE ../..
- "mv $VERUS_CLI_WINDOWS_PORTABLE ../.." - mv verus-cli win64
- "mv verus-cli win64" - zip -r $AGAMA_ARTIFACTS_WINDOWS win64
- "zip -r $AGAMA_ARTIFACTS_WINDOWS win64" - mv $AGAMA_ARTIFACTS_WINDOWS ../..
- "mv $AGAMA_ARTIFACTS_WINDOWS ../.."
artifacts: artifacts:
paths: paths:
- $VERUS_CLI_WINDOWS_PORTABLE - $VERUS_CLI_WINDOWS_PORTABLE
@ -81,20 +83,18 @@ build:windows:
build:mac: build:mac:
stage: build stage: build
tags: ["osx"] tags: ["High Sierra"]
cache: cache:
key: ${CI_JOB_NAME} key: ${CI_JOB_NAME}
paths: paths:
- depends/built - depends/built
script: script:
- "./zcutil/build-mac.sh | xcpretty" - zcutil/build-mac.sh | xcpretty
- "./makeReleaseMac.sh" - ./makeReleaseMac.sh
- "cd kmd/mac/" - dos2unix kmd/mac/verus-cli/README.txt
- "tar -czvf $VERUS_CLI_MACOS_PORTABLE verus-cli" - tar -C kmd/mac/ -czvf $VERUS_CLI_MACOS_PORTABLE verus-cli ./
- "mv verus-cli-mac-v$VERSION-beta.tar.gz ../.." - mv kmd/mac/verus-cli kmd/mac/osx
- "mv verus-cli osx" - tar -C kmd/mac/ -czvf $AGAMA_ARTIFACTS_MACOS osx ./
- "tar -czvf $AGAMA_ARTIFACTS_MACOS osx"
- "mv $AGAMA_ARTIFACTS_MACOS ../.."
artifacts: artifacts:
paths: paths:
- $VERUS_CLI_MACOS_PORTABLE - $VERUS_CLI_MACOS_PORTABLE
@ -138,24 +138,118 @@ sast:
paths: [gl-sast-report.json] 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: deploy:
stage: deploy stage: deploy
image: google/cloud-sdk:alpine image: google/cloud-sdk:alpine
variables: variables:
DOCKER_DRIVER: overlay2 DOCKER_DRIVER: overlay2
dependencies: dependencies:
- build:linux - build:linux
- build:windows - build:windows
- build:mac - build:mac
script: script:
- "mkdir $CI_COMMIT_REF_NAME" - mkdir -p $CI_COMMIT_REF_NAME/Windows
- "cd $CI_COMMIT_REF_NAME" - mkdir -p $CI_COMMIT_REF_NAME/Linux
- "mkdir Windows && mkdir Linux @&& mkdir MacOS" - mkdir -p $CI_COMMIT_REF_NAME/MacOS
- "cd .." - mv $VERUS_CLI_WINDOWS_PORTABLE $AGAMA_ARTIFACTS_WINDOWS $CI_COMMIT_REF_NAME/Windows
- "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_LINUX_PORTABLE $AGAMA_ARTIFACTS_LINUX $CI_COMMIT_REF_NAME/Linux" - mv $VERUS_CLI_MACOS_PORTABLE $AGAMA_ARTIFACTS_MACOS $CI_COMMIT_REF_NAME/MacOS
- "mv $AGAMA_ARTIFACTS_MACOS $VERUS_CLI_MACOS_PORTABLE $CI_COMMIT_REF_NAME/MacOS" - echo "$AUTH_KEY" > AUTH_KEY.json
- 'echo "$AUTH_KEY" > AUTH_KEY.json' - gcloud auth activate-service-account --key-file 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/
- "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 ./zcutil/build-win.sh
``` ```
VerusCoin 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. 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 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 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: Run ./verusd to launch komodod, and use verus to run commands such as:
./verus stop ./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 )" DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd $DIR cd $DIR
komodo-cli -ac_name=VRSC "$@" ./komodo-cli -ac_name=VRSC "$@"

2
kmd/linux/verus-cli/verusd

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd $DIR 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 #!/bin/sh
cp src/komodod src/komodo-cli kmd/linux/verus-cli cp src/komodod src/komodo-cli kmd/linux/verus-cli
chmod +x kmd/linux/verus-cli/komodo* chmod +x kmd/linux/verus-cli/komodo
chmod +x kmd/linux/verus-cli/veru* 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 chmod +x $KMD_DIR/$binary
done 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