stages: - build - test - deploy variables: VERSION: 0.4.0a VERUS_CLI_LINUX: Verus-CLI-Linux-v${VERSION}.tar.gz VERUS_CLI_WINDOWS: Verus-CLI-Windows-v${VERSION}.zip VERUS_CLI_MACOS: Verus-CLI-MacOS-v${VERSION}.tar.gz DOWNSTREAM_AGAMA_BRANCH: ${CI_COMMIT_REF_NAME} POST_MESSAGE: "Source: ${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}\n Pipeline Trigger: ${CI_PIPELINE_SOURCE}\n Commit: ${CI_COMMIT_SHA}$\n ${CI_COMMIT_MESSAGE}" build:linux: image: asherd/verus-builders:verus-ubuntu variables: DOCKER_DRIVER: overlay2 stage: build cache: key: ${CI_JOB_NAME} paths: - depends/built script: - zcutil/build.sh -j$(nproc) - mkdir verus-cli - cp src/komodod src/komodo-cli src/verus src/verusd doc/man/verus-cli/linux/README.txt zcutil/fetch-params.sh verus-cli - mv verus-cli/fetch-params.sh verus-cli/fetch-params - chmod +x verus-cli/komodod - chmod +x verus-cli/komodo-cli - chmod +x verus-cli/verus - chmod +x verus-cli/verusd - chmod +x verus-cli/fetch-params - tar -czvf ${VERUS_CLI_LINUX} verus-cli - md5sum ${VERUS_CLI_LINUX} > ${VERUS_CLI_LINUX}.md5 - curl -F file=@"${VERUS_CLI_LINUX}" -F channels="${CLI_POST_CHANNEL}" -F initial_comment="${POST_MESSAGE}" -H "${SLACK_BOT_AUTH}" "https://slack.com/api/files.upload" artifacts: paths: - ${VERUS_CLI_LINUX} - ${VERUS_CLI_LINUX}.md5 expire_in: 1 week build:windows: image: asherd/verus-builders:verus-windows variables: DOCKER_DRIVER: overlay2 stage: build cache: key: ${CI_JOB_NAME} paths: - depends/built script: - zcutil/build-win.sh -j$(nproc) - mkdir verus-cli - cp src/komodod.exe src/komodo-cli.exe src/komodo-tx.exe doc/man/verus-cli/windows/README.txt zcutil/fetch-params.bat zcutil/wget64.exe verus-cli - zip -r ${VERUS_CLI_WINDOWS} verus-cli - md5sum ${VERUS_CLI_WINDOWS} > ${VERUS_CLI_WINDOWS}.md5 - curl -F file=@"${VERUS_CLI_WINDOWS}" -F channels="${CLI_POST_CHANNEL}" -F initial_comment="${POST_MESSAGE}" -H "${SLACK_BOT_AUTH}" "https://slack.com/api/files.upload" artifacts: paths: - ${VERUS_CLI_WINDOWS} - ${VERUS_CLI_WINDOWS}.md5 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) - ./makeReleaseMac.sh - tar -czvf ${VERUS_CLI_MACOS} verus-cli - md5sum ${VERUS_CLI_MACOS} > ${VERUS_CLI_MACOS}.md5 - curl -F file=@"${VERUS_CLI_MACOS}" -F channels="${CLI_POST_CHANNEL}" -F initial_comment="${POST_MESSAGE}" -H "${SLACK_BOT_AUTH}" "https://slack.com/api/files.upload" artifacts: paths: - ${VERUS_CLI_MACOS} - ${VERUS_CLI_MACOS}.md5 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 libgomp1 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 libgomp1 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 .macos: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 .macos:high-sierra: 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="$DOWNSTREAM_AGAMA_BRANCH" -F variables\[UPSTREAM_TRIGGER_INFO\]="${POST_MESSAGE}" -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"