Files
hush3/.gitlab-ci.yml
2018-08-16 20:37:00 -07:00

282 lines
7.7 KiB
YAML

stages:
- build
- test
- package
- deploy
variables:
VERSION: 0.3.12
AGAMA_ARTIFACTS_LINUX: linux64.tar.gz
AGAMA_ARTIFACTS_MACOS: osx.tar.gz
AGAMA_ARTIFACTS_WINDOWS: win64.zip
VERUS_CLI_LINUX: verus-cli-linux-v$VERSION-beta.tar.gz
VERUS_CLI_WINDOWS: verus-cli-windows-v$VERSION-beta.zip
VERUS_CLI_MACOS: verus-cli-mac-v$VERSION-beta.tar.gz
WINDOWS_INSTALLER: VerusCoin-v$VERSION-beta-windows-installer.exe
.build:linux:
image: asherd/veruscoin-cross-compiler:linux
variables:
DOCKER_DRIVER: overlay2
stage: build
before_script: # Setup Cache
- rm -rf /root/.ccache || true
- mv .ccache /root/ || true
script:
- zcutil/build.sh -j4
- cp src/komodod src/komodo-cli kmd/linux/verus-cli
- 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
- 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
- $AGAMA_ARTIFACTS_LINUX
expire_in: 1 week
build:windows:
image: asherd/veruscoin-cross-compiler:latest
variables:
DOCKER_DRIVER: overlay2
stage: build
cache:
key: ${CI_JOB_NAME}
paths:
- depends/built
- .ccache
- .cargo
before_script:
- mkdir .ccache || echo ccache exists
- ln -s $PWD/.ccache /root/.ccache
- mkdir .zcash-params || echo zcash-params exists
- mkdir .cargo || echo .cargo exists
- ln -s $PWD/.cargo /root/.cargo
script:
- 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
- $AGAMA_ARTIFACTS_WINDOWS
expire_in: 1 week
.build:mac:
stage: build
tags: ["High Sierra"]
cache:
key: ${CI_JOB_NAME}
paths:
- depends/built
script:
- 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
- $AGAMA_ARTIFACTS_MACOS
expire_in: 1 week
.code_quality:
image: docker:stable
variables:
DOCKER_DRIVER: overlay2
allow_failure: true
services:
- docker:stable-dind
script:
- export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
- docker run
--env SOURCE_CODE="$PWD"
--volume "$PWD":/code
--volume /var/run/docker.sock:/var/run/docker.sock
"registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
artifacts:
paths: [gl-code-quality-report.json]
.sast:
image: docker:stable
variables:
DOCKER_DRIVER: overlay2
allow_failure: true
services:
- docker:stable-dind
script:
- export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
- docker run
--env SAST_CONFIDENCE_LEVEL="${SAST_CONFIDENCE_LEVEL:-3}"
--volume "$PWD:/code"
--volume /var/run/docker.sock:/var/run/docker.sock
"registry.gitlab.com/gitlab-org/security-products/sast:$SP_VERSION" /app/bin/run /code
artifacts:
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: # fetch-params.sh needs to be fixed for MacOS
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: # fetch-params.sh needs to be fixed for MacOS
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
package:
stage: package
image: asherd/agama-builder
variables:
DOCKER_DRIVER: overlay2
dependencies:
- build:windows
before_script:
- unzip $VERUS_CLI_WINDOWS_PORTABLE
- echo "$AUTH_KEY" > AUTH_KEY.json
- gcloud auth activate-service-account --key-file AUTH_KEY.json
- rm AUTH_KEY.json
- gsutil cp $STAGING/Agama/installer-prototype/Windows/Agama-win32-x64-v${VERSION}-beta.zip .
- unzip Agama-win32-x64-v${VERSION}-beta.zip
- git clone https://github.com/VerusCoin/Media-Assets --single-branch -b master
- mkdir -p assets/imgs/
- cp Media-Assets/Logos/PNG/* assets/imgs/
script:
- builder build zcutil/VerusCoin.xml windows --setvars project.version=$VERSION-beta
- mv builds/$WINDOWS_INSTALLER .
artifacts:
paths: [$WINDOWS_INSTALLER]
deploy:
stage: deploy
image: google/cloud-sdk:alpine
variables:
DOCKER_DRIVER: overlay2
dependencies:
#- build:linux
#- build:windows
#- build:mac
- package
script:
#- 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 $WINDOWS_INSTALLER $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/
- gsutil cp $WINDOWS_INSTALLER $CI_COMMIT_REF_NAME/ $STAGING/VerusCoin/$CI_COMMIT_REF_NAME/Windows/