stages: - build - test - deploy variables: VERSION: 0.3.14 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-MacOS-v${VERSION}-beta.tar.gz" POST_COMMENT: "Branch and Commit: ${CI_COMMIT_REF_NAME} ${CI_COMMIT_SHA} $'\n'MD5: " 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 -j$(nproc) - 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 - cd kmd/linux/ - tar -czvf $VERUS_CLI_LINUX verus-cli - mv $VERUS_CLI_LINUX ../.. - cd ../.. - export VERUS_CLI_LINUX_MD5=$(md5sum $VERUS_CLI_LINUX | cut -d " " -f 1) - curl -F file=@"$VERUS_CLI_LINUX" -F channels="$CLI_POST_CHANNEL" -F initial_comment="${POST_COMMENT}$VERUS_CLI_LINUX_MD5" -H "${SLACK_BOT_AUTH}" "https://slack.com/api/files.upload" after_script: - mv /root/.ccache ./ || true cache: key: ${CI_JOB_NAME} paths: - depends/built - .ccache artifacts: paths: - $VERUS_CLI_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 -j$(nproc) - 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 ../.. - cd ../.. - export VERUS_CLI_WINDOWS_MD5=$(md5sum $VERUS_CLI_WINDOWS | cut -d " " -f 1) - curl -F file=@"$VERUS_CLI_WINDOWS" -F channels="$CLI_POST_CHANNEL" -F initial_comment="${POST_COMMENT}$VERUS_CLI_WINDOWS_MD5" -H "${SLACK_BOT_AUTH}" "https://slack.com/api/files.upload" artifacts: paths: [$VERUS_CLI_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 -j$(sysctl -n hw.physicalcpu) | xcpretty - ./makeReleaseMac.sh - dos2unix kmd/mac/verus-cli/README.txt - tar -C kmd/mac/ -czvf $VERUS_CLI_MACOS verus-cli ./ - export VERUS_CLI_MACOS_MD5=$(md5sum $VERUS_CLI_MACOS | cut -d " " -f 1) - curl -F file=@"$VERUS_CLI_MACOS" -F channels="$CLI_POST_CHANNEL" -F initial_comment="${POST_COMMENT}$VERUS_CLI_MACOS_MD5" -H "${SLACK_BOT_AUTH}" "https://slack.com/api/files.upload" artifacts: paths: [$VERUS_CLI_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 - rm -rf /root/.komodo || true - mv .komodo /root/ || true script: - tar -xzvf $VERUS_CLI_LINUX - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli - python qa/verus-cli-tests/verus-cli-tester.py after_script: - mv /root/.komodo ./ || true cache: key: ${CI_JOB_NAME} paths: [.komodo] 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 - rm -rf /root/.komodo || true - mv .komodo /root/ || true script: - tar -xzvf $VERUS_CLI_LINUX - export PATH=$PATH:$CI_PROJECT_DIR/verus-cli - python qa/verus-cli-tests/verus-cli-tester.py after_script: - mv /root/.komodo ./ || true cache: key: ${CI_JOB_NAME} paths: [.komodo] 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 Windows && mv $VERUS_CLI_LINUX Linux && mv $VERUS_CLI_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" -F ref=dev -F variables\[UPSTREAM_CLI_BRANCH\]="$CI_COMMIT_REF_NAME" -F variables\[VERUS_CLI_LINUX\]="$VERUS_CLI_LINUX" -F variables\[VERUS_CLI_WINDOWS\]="$VERUS_CLI_WINDOWS" -F variables\[VERUS_CLI_MACOS\]="$VERUS_CLI_MACOS" "https://gitlab.com/api/v4/projects/8018592/trigger/pipeline"