stages: - build - test - 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 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/komodod - chmod +x kmd/linux/verus-cli/komodo-cli - 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 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 - $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 - cp src/komodod.exe src/komodo-cli.exe src/komodo-tx.exe kmd/windows/verus-cli - cd kmd/windows/ - zip -r $VERUS_CLI_WINDOWS verus-cli - mv $VERUS_CLI_WINDOWS ../.. - mv verus-cli win64 - zip -r $AGAMA_ARTIFACTS_WINDOWS win64 - mv $AGAMA_ARTIFACTS_WINDOWS ../.. artifacts: paths: - $VERUS_CLI_WINDOWS - $AGAMA_ARTIFACTS_WINDOWS expire_in: 1 week build:mac: stage: build tags: ["High Sierra"] cache: key: ${CI_JOB_NAME} paths: - depends/built script: - brew bundle - zcutil/build-mac.sh | xcpretty - ./makeReleaseMac.sh - dos2unix kmd/mac/verus-cli/README.txt - tar -C kmd/mac/ -czvf $VERUS_CLI_MACOS verus-cli ./ - mv kmd/mac/verus-cli kmd/mac/osx - tar -C kmd/mac/ -czvf $AGAMA_ARTIFACTS_MACOS osx ./ artifacts: paths: - $VERUS_CLI_MACOS - $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 - 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 - 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 - 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 - 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% -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 script: - mkdir Windows - mkdir Linux - mkdir MacOS - mv $VERUS_CLI_WINDOWS $AGAMA_ARTIFACTS_WINDOWS Windows - mv $VERUS_CLI_LINUX $AGAMA_ARTIFACTS_LINUX Linux - mv $VERUS_CLI_MACOS $AGAMA_ARTIFACTS_MACOS MacOS - echo "$AUTH_KEY" > AUTH_KEY.json - gcloud auth activate-service-account --key-file AUTH_KEY.json - gsutil cp -r Windows Linux MacOS $STAGING/VerusCoin/$CI_COMMIT_REF_NAME/ - curl -X POST -F token=$CI_JOB_TOKEN --form ref=$CI_COMMIT_REF_NAME https://gitlab.com/api/v4/projects/8018638/trigger/pipeline