update gitlab CI conf

komodify gitlab CI conf
This commit is contained in:
ca333
2018-11-25 17:01:39 +01:00
committed by GitHub
parent d80ef46e94
commit 20d588a2df

View File

@@ -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"
${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"
${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####
########################################################################################################################