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_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 EASYDEX_GUI_ARTIFACT: build.tar.gz 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 - ./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 - $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/VerusCoin-v$VERSION-beta-windows-installer.exe . artifacts: paths: [VerusCoin-v$VERSION-beta-windows-installer.exe] deploy: stage: deploy image: google/cloud-sdk:alpine variables: DOCKER_DRIVER: overlay2 dependencies: - build:linux - build:windows - build:mac 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 VerusCoin-v$VERSION-windows-installer.exe $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/