stages: - build - test - deploy ######################################################################################################################## ####START#### PROJECT LEVEL VARIABLES ####START#### ######################################################################################################################## variables: VERSION: 0.9.4-5 VERUS_CLI_ARM64_LINUX: Verus-CLI-Linux-v${VERSION}-arm64.tar.gz VERUS_CLI_LINUX_X86_64: Verus-CLI-Linux-v${VERSION}-x86_64.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: https://github.com/VerusCoin/${CI_PROJECT_NAME}/commit/${CI_COMMIT_SHA}\n ${CI_COMMIT_MESSAGE}" STRIP_BINARIES: "false" ######################################################################################################################## ####END#### PROJECT LEVEL VARIABLES ####END#### ######################################################################################################################## ######################################################################################################################## ######################################################################################################################## ####START#### Build Stage: compile and package binaries for Verus CLI ####START##### ######################################################################################################################## ######################################################################################################################## ####START#### LINUX ####START#### ######################################################################################################################## build:linux: tags: [ "verusd" ] image: asherd/verus-builders:verus-debian-10 variables: DOCKER_DRIVER: overlay2 CONFIGURE_FLAGS: --with-gcc-arch=x86-64 stage: build cache: key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}" paths: - depends script: - zcutil/build.sh -j$(nproc) - if [ "${STRIP_BINARIES}" = "true" ]; then strip --strip-unneeded src/verus && strip --strip-unneeded src/verusd; fi - mkdir verus-cli - cp src/verus src/verusd doc/man/verus-cli/linux/README.txt zcutil/fetch-params.sh vcutil/fetch-bootstrap.sh verus-cli - mv verus-cli/fetch-params.sh verus-cli/fetch-params - mv verus-cli/fetch-bootstrap.sh verus-cli/fetch-bootstrap - chmod +x verus-cli/verus - chmod +x verus-cli/verusd - chmod +x verus-cli/fetch-params - chmod +x verus-cli/fetch-bootstrap - tar -czvf ${VERUS_CLI_LINUX_X86_64} verus-cli - sha256sum ${VERUS_CLI_LINUX_X86_64} > ${VERUS_CLI_LINUX_X86_64}.sha256 - git status artifacts: paths: - ${VERUS_CLI_LINUX_X86_64} - ${VERUS_CLI_LINUX_X86_64}.sha256 expire_in: 1 week build:linux:arm64: tags: [ "verusd" ] image: asherd/verus-builders:cross-arm variables: DOCKER_DRIVER: overlay2 HOST: aarch64-linux-gnu STRIP: /usr/aarch64-linux-gnu/bin/strip stage: build cache: key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}" paths: - depends script: - zcutil/build.sh -j$(nproc) - if [ "${STRIP_BINARIES}" = "true" ]; then /usr/aarch64-linux-gnu/bin/strip --strip-unneeded src/verus && /usr/aarch64-linux-gnu/bin/strip --strip-unneeded src/verusd; fi - mkdir verus-cli - cp src/verus src/verusd doc/man/verus-cli/linux/README.txt zcutil/fetch-params.sh vcutil/fetch-bootstrap.sh verus-cli - mv verus-cli/fetch-params.sh verus-cli/fetch-params - mv verus-cli/fetch-bootstrap.sh verus-cli/fetch-bootstrap - chmod +x verus-cli/verus - chmod +x verus-cli/verusd - chmod +x verus-cli/fetch-params - chmod +x verus-cli/fetch-bootstrap - tar -czvf ${VERUS_CLI_ARM64_LINUX} verus-cli - sha256sum ${VERUS_CLI_ARM64_LINUX} > ${VERUS_CLI_ARM64_LINUX}.sha256 artifacts: paths: - ${VERUS_CLI_ARM64_LINUX} - ${VERUS_CLI_ARM64_LINUX}.sha256 expire_in: 1 week ######################################################################################################################## ####END#### LINUX ####END#### ######################################################################################################################## ####START#### WINDOWS ####START#### ######################################################################################################################## build:windows: tags: [ "verusd" ] image: asherd/verus-builders:verus-windows variables: DOCKER_DRIVER: overlay2 CONFIGURE_FLAGS: --with-gcc-arch=x86-64 stage: build cache: key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}" paths: - depends script: - zcutil/build-win.sh -j$(nproc) - mkdir verus-cli - cp src/verus.exe src/verusd.exe doc/man/verus-cli/windows/README.txt zcutil/fetch-params.bat vcutil/fetch-bootstrap.bat verus-cli - if [ "${STRIP_BINARIES}" = "true" ]; then strip --strip-unneeded verus-cli/verusd.exe && strip --strip-unneeded verus-cli/verus.exe; fi - zip -r ${VERUS_CLI_WINDOWS} verus-cli - sha256sum ${VERUS_CLI_WINDOWS} > ${VERUS_CLI_WINDOWS}.sha256 artifacts: paths: - ${VERUS_CLI_WINDOWS} - ${VERUS_CLI_WINDOWS}.sha256 expire_in: 1 week ######################################################################################################################## ####END#### WINDOWS ####END#### ######################################################################################################################## ####START#### MACOS ####START#### ######################################################################################################################## build:mac: tags: [ "MacOS" ] variables: CONFIGURE_FLAGS: --with-gcc-arch=x86-64 stage: build cache: key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}" paths: - depends script: - zcutil/build-mac.sh -j$(sysctl -n hw.physicalcpu) - mkdir verus-cli - cp src/verus src/verusd doc/man/verus-cli/mac/README.txt zcutil/fetch-params.sh vcutil/fetch-bootstrap.sh verus-cli - mv verus-cli/fetch-params.sh verus-cli/fetch-params - mv verus-cli/fetch-bootstrap.sh verus-cli/fetch-bootstrap - chmod +x verus-cli/fetch-params - chmod +x verus-cli/fetch-bootstrap - chmod +x verus-cli/verus - chmod +x verus-cli/verusd - tar -czvf ${VERUS_CLI_MACOS} verus-cli - shasum -a 256 ${VERUS_CLI_MACOS} > ${VERUS_CLI_MACOS}.sha256 artifacts: paths: - ${VERUS_CLI_MACOS} - ${VERUS_CLI_MACOS}.sha256 expire_in: 1 week ######################################################################################################################## ####END#### MACOS ####END#### ######################################################################################################################## ######################################################################################################################## ####END#### Build Stage ####END#### ######################################################################################################################## ######################################################################################################################## ####START#### Deploy ####START#### ######################################################################################################################## deploy: tags: [ "verusd" ] stage: deploy image: google/cloud-sdk:alpine variables: DOCKER_DRIVER: overlay2 dependencies: - build:linux - build:windows - build:mac - build:linux:arm64 script: - mkdir Windows && mkdir Linux && mkdir MacOS - cp ${VERUS_CLI_WINDOWS} Windows - cp ${VERUS_CLI_LINUX_X86_64} Linux - cp ${VERUS_CLI_ARM64_LINUX} Linux - cp ${VERUS_CLI_MACOS} MacOS - echo "$AUTH_KEY" > AUTH_KEY.json && gcloud auth activate-service-account --key-file AUTH_KEY.json - gsutil cp -r Windows MacOS Linux $STAGING/${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME} artifacts: paths: - ${VERUS_CLI_LINUX_X86_64} - ${VERUS_CLI_LINUX_X86_64}.sha256 - ${VERUS_CLI_WINDOWS} - ${VERUS_CLI_WINDOWS}.sha256 - ${VERUS_CLI_MACOS} - ${VERUS_CLI_MACOS}.sha256 - ${VERUS_CLI_ARM64_LINUX} - ${VERUS_CLI_ARM64_LINUX}.sha256 expire_in: 1 week ######################################################################################################################## ####END#### Deploy ####END#### ########################################################################################################################