From 20d588a2dfa2aa7b0773b4f9e201925d7aa78692 Mon Sep 17 00:00:00 2001 From: ca333 Date: Sun, 25 Nov 2018 17:01:39 +0100 Subject: [PATCH] update gitlab CI conf komodify gitlab CI conf --- .gitlab-ci.yml | 259 +++++++++---------------------------------------- 1 file changed, 45 insertions(+), 214 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b26399a9c..3ace05cb9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,112 +1,90 @@ stages: - build - test -- deploy ######################################################################################################################## ####START#### PROJECT LEVEL VARIABLES ####START#### ######################################################################################################################## variables: - VERSION: 0.4.0c - 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}" + PACKAGE_DIR_LINUX: linux64 + PACKAGE_DIR_WINDOWS: win64 + PACKAGE_DIR_MACOS: macos + AGAMA_ARTIFACTS_LINUX: ${PACKAGE_DIR_LINUX}.tar.gz + AGAMA_ARTIFACTS_WINDOWS: ${PACKAGE_DIR_WINDOWS}.zip + AGAMA_ARTIFACTS_MACOS: ${PACKAGE_DIR_MACOS}.tar.gz + AGAMA_ARTIFACTS_LINUX_CHECKSUM: ${AGAMA_ARTIFACTS_LINUX}.md5 + AGAMA_ARTIFACTS_WINDOWS_CHECKSUM: ${AGAMA_ARTIFACTS_WINDOWS}.md5 + AGAMA_ARTIFACTS_MACOS_CHECKSUM: ${AGAMA_ARTIFACTS_MACOS}.md5 + ARTIFACT_EXPIRATION: 1 week + ######################################################################################################################## ####END#### PROJECT LEVEL VARIABLES ####END#### ######################################################################################################################## ######################################################################################################################## ######################################################################################################################## -####START#### Build Stage: compile and package komodo binaries for Verus CLI ####START##### +####START#### Build Stage: compile and package komodo binaries for the Agama Wallet. ####START##### ######################################################################################################################## ######################################################################################################################## ####START#### LINUX ####START#### ######################################################################################################################## -build:linux: - image: asherd/verus-builders:verus-ubuntu +build:ubuntu: + stage: build + image: ca333/komodo-builders:komodo-ubuntu variables: DOCKER_DRIVER: overlay2 - stage: build cache: key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}" paths: - depends/built script: - zcutil/build.sh -j$(nproc) - - mkdir verus-cli + - mkdir ${PACKAGE_DIR_LINUX} - cp src/komodod - src/komodo-cli - src/fiat/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 - - if [ "${CI_COMMIT_REF_NAME}" = "master" ]; then strip -g verus-cli/komodod && strip -g verus-cli/komodod; fi - - 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" + src/komodo-cli + ${PACKAGE_DIR_LINUX} + - chmod +x ${PACKAGE_DIR_LINUX}/komodod + - chmod +x ${PACKAGE_DIR_LINUX}/komodo-cli + - tar -czvf ${AGAMA_ARTIFACTS_LINUX} ${PACKAGE_DIR_LINUX} + - md5sum ${AGAMA_ARTIFACTS_LINUX} > ${AGAMA_ARTIFACTS_LINUX_CHECKSUM} artifacts: paths: - - ${VERUS_CLI_LINUX} - - ${VERUS_CLI_LINUX}.md5 + - ${AGAMA_ARTIFACTS_LINUX} + - ${AGAMA_ARTIFACTS_LINUX_CHECKSUM} expire_in: 1 week + ######################################################################################################################## ####END#### LINUX ####END#### ######################################################################################################################## ####START#### WINDOWS ####START#### ######################################################################################################################## build:windows: - image: asherd/verus-builders:verus-windows + stage: build + image: ca333/komodo-builders:komodo-windows variables: DOCKER_DRIVER: overlay2 - stage: build cache: key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}" paths: - depends/built script: - zcutil/build-win.sh -j$(nproc) - - mkdir verus-cli + - mkdir ${PACKAGE_DIR_WINDOWS} - cp src/komodod.exe - src/komodo-cli.exe - src/komodo-tx.exe - src/fiat/verus.bat - src/verusd.bat - 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" + src/komodo-cli.exe + src/komodo-tx.exe + ${PACKAGE_DIR_WINDOWS} + - zip -r ${PACKAGE_DIR_WINDOWS}.zip ${PACKAGE_DIR_WINDOWS} + - md5sum ${AGAMA_ARTIFACTS_WINDOWS} > ${AGAMA_ARTIFACTS_WINDOWS_CHECKSUM} artifacts: paths: - - ${VERUS_CLI_WINDOWS} - - ${VERUS_CLI_WINDOWS}.md5 + - ${AGAMA_ARTIFACTS_WINDOWS} + - ${AGAMA_ARTIFACTS_WINDOWS_CHECKSUM} expire_in: 1 week ######################################################################################################################## ####END#### WINDOWS ####END#### ######################################################################################################################## ####START#### MACOS ####START#### ######################################################################################################################## -build:mac: +build:macos: stage: build tags: ["High Sierra"] cache: @@ -115,18 +93,13 @@ build:mac: - depends/built script: - 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" + - ./makeRelease.sh ${PACKAGE_DIR_MACOS} + - tar -czvf ${AGAMA_ARTIFACTS_MACOS} ${PACKAGE_DIR_MACOS} + - md5sum ${AGAMA_ARTIFACTS_MACOS} > ${AGAMA_ARTIFACTS_MACOS_CHECKSUM} artifacts: paths: - - ${VERUS_CLI_MACOS} - - ${VERUS_CLI_MACOS}.md5 + - ${AGAMA_ARTIFACTS_MACOS} + - ${AGAMA_ARTIFACTS_MACOS_CHECKSUM} expire_in: 1 week ######################################################################################################################## ####END#### MACOS ####END#### @@ -137,13 +110,13 @@ build:mac: ######################################################################################################################## ######################################################################################################################## ######################################################################################################################## -####START#### Test stage: Test functionality of komodo binaries. Produce code quality and SAST reports. ####START#### +####START#### Test stage: Produce code quality and static application security test reports. ####START#### ######################################################################################################################## ######################################################################################################################## ######################################################################################################################## ####START#### Code Quality ####START#### ######################################################################################################################## -.code_quality: +code_quality: image: docker:stable variables: DOCKER_DRIVER: overlay2 @@ -165,7 +138,7 @@ build:mac: ######################################################################################################################## ####START#### Static Application Security Tests ####START#### ######################################################################################################################## -.sast: +sast: image: docker:stable variables: DOCKER_DRIVER: overlay2 @@ -185,149 +158,7 @@ build:mac: ####END#### Static Application Security Tests ####END#### ######################################################################################################################## ######################################################################################################################## -####START#### Run Verus CLI on Ubuntu Xenial (16.04) ####START#### ######################################################################################################################## -.ubuntu:xenial: - image: ubuntu:xenial - variables: - DOCKER_DRIVER: overlay2 - stage: test - before_script: - - apt update && apt install -y wget libgomp1 libcurl4-gnutls-dev 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 -######################################################################################################################## -####END#### Run Verus CLI on Ubuntu Xenial (16.04) ####END#### +####END#### Test stage ####END#### ######################################################################################################################## ######################################################################################################################## -####START#### Run Verus CLI on Ubuntu Bionic (18.04) ####START#### -######################################################################################################################## -.ubuntu:bionic: - image: ubuntu:bionic - variables: - DOCKER_DRIVER: overlay2 - stage: test - before_script: - - apt update && apt install -y wget libgomp1 libcurl4-gnutls-dev 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 -######################################################################################################################## -####END#### Run Verus CLI on Ubuntu Bionic (18.04) ####END#### -######################################################################################################################## -######################################################################################################################## -####START#### Run Verus CLI on MacOS Sierra (10.12.6) ####START#### -######################################################################################################################## -.macos:sierra: - 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 -######################################################################################################################## -####END#### Run Verus CLI on MacOS Sierra (10.12.6) ####END#### -######################################################################################################################## -######################################################################################################################## -####START#### Run Verus CLI on MacOS High Sierra (10.12.6) ####START#### -######################################################################################################################## -.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 -######################################################################################################################## -####START#### Run Verus CLI on MacOS High Sierra (10.12.6) ####START#### -######################################################################################################################## -######################################################################################################################## -####START#### Run Verus CLI on Windows 10 ####START#### -######################################################################################################################## -.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 -######################################################################################################################## -####END#### Run Verus CLI on Windows 10 ####END#### -######################################################################################################################## -######################################################################################################################## -####END#### Test Stage ####END#### -######################################################################################################################## -######################################################################################################################## -####START#### Deploy ####START#### -######################################################################################################################## -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/${CI_PROJECT_NAME}/${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" -######################################################################################################################## -####END#### Deploy ####END#### -########################################################################################################################