162
.gitlab-ci.yml
Normal file
162
.gitlab-ci.yml
Normal file
@@ -0,0 +1,162 @@
|
|||||||
|
stages:
|
||||||
|
- build
|
||||||
|
- test
|
||||||
|
########################################################################################################################
|
||||||
|
####START#### PROJECT LEVEL VARIABLES ####START####
|
||||||
|
########################################################################################################################
|
||||||
|
variables:
|
||||||
|
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 the Agama Wallet. ####START#####
|
||||||
|
########################################################################################################################
|
||||||
|
########################################################################################################################
|
||||||
|
####START#### LINUX ####START####
|
||||||
|
########################################################################################################################
|
||||||
|
build:ubuntu:
|
||||||
|
stage: build
|
||||||
|
image: asherd/komodo-builders:komodo-ubuntu
|
||||||
|
variables:
|
||||||
|
DOCKER_DRIVER: overlay2
|
||||||
|
cache:
|
||||||
|
key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
|
||||||
|
paths:
|
||||||
|
- depends/built
|
||||||
|
script:
|
||||||
|
- zcutil/build.sh -j$(nproc)
|
||||||
|
- mkdir ${PACKAGE_DIR_LINUX}
|
||||||
|
- cp src/komodod
|
||||||
|
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:
|
||||||
|
- ${AGAMA_ARTIFACTS_LINUX}
|
||||||
|
- ${AGAMA_ARTIFACTS_LINUX_CHECKSUM}
|
||||||
|
expire_in: ${ARTIFACT_EXPIRATION}
|
||||||
|
########################################################################################################################
|
||||||
|
####END#### LINUX ####END####
|
||||||
|
########################################################################################################################
|
||||||
|
####START#### WINDOWS ####START####
|
||||||
|
########################################################################################################################
|
||||||
|
build:windows:
|
||||||
|
stage: build
|
||||||
|
image: asherd/komodo-builders:komodo-windows
|
||||||
|
variables:
|
||||||
|
DOCKER_DRIVER: overlay2
|
||||||
|
cache:
|
||||||
|
key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
|
||||||
|
paths:
|
||||||
|
- depends/built
|
||||||
|
script:
|
||||||
|
- zcutil/build-win.sh -j$(nproc)
|
||||||
|
- mkdir ${PACKAGE_DIR_WINDOWS}.
|
||||||
|
- cp src/komodod.exe
|
||||||
|
src/komodo-cli.exe
|
||||||
|
src/komodo-tx.exe
|
||||||
|
${PACKAGE_DIR_WINDOWS}
|
||||||
|
- zip -r ${PACKAGE_DIR_WINDOWS}
|
||||||
|
- md5sum ${AGAMA_ARTIFACTS_WINDOWS} > ${AGAMA_ARTIFACTS_WINDOWS_CHECKSUM}
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- ${AGAMA_ARTIFACTS_WINDOWS}
|
||||||
|
- ${AGAMA_ARTIFACTS_WINDOWS_CHECKSUM}
|
||||||
|
expire_in: ${ARTIFACT_EXPIRATION}
|
||||||
|
########################################################################################################################
|
||||||
|
####END#### WINDOWS ####END####
|
||||||
|
########################################################################################################################
|
||||||
|
####START#### MACOS ####START####
|
||||||
|
########################################################################################################################
|
||||||
|
build:macos:
|
||||||
|
stage: build
|
||||||
|
tags: ["High Sierra"]
|
||||||
|
cache:
|
||||||
|
key: "${CI_JOB_NAME}${CI_COMMIT_REF_NAME}"
|
||||||
|
paths:
|
||||||
|
- depends/built
|
||||||
|
script:
|
||||||
|
- zcutil/build-mac.sh -j$(sysctl -n hw.physicalcpu)
|
||||||
|
- ./makeRelease.sh ${PACKAGE_DIR_MACOS}
|
||||||
|
- tar -czvf ${AGAMA_ARTIFACTS_MACOS} ${PACKAGE_DIR_MACOS}
|
||||||
|
- md5sum ${AGAMA_ARTIFACTS_MACOS} > ${AGAMA_ARTIFACTS_MACOS_CHECKSUM}
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- ${AGAMA_ARTIFACTS_MACOS}
|
||||||
|
- ${AGAMA_ARTIFACTS_MACOS_CHECKSUM}
|
||||||
|
expire_in: ${ARTIFACT_EXPIRATION}
|
||||||
|
########################################################################################################################
|
||||||
|
####END#### MACOS ####END####
|
||||||
|
########################################################################################################################
|
||||||
|
########################################################################################################################
|
||||||
|
####END#### Build Stage ####END####
|
||||||
|
########################################################################################################################
|
||||||
|
########################################################################################################################
|
||||||
|
########################################################################################################################
|
||||||
|
########################################################################################################################
|
||||||
|
####START#### Test stage: Produce code quality and static application security test reports. ####START####
|
||||||
|
########################################################################################################################
|
||||||
|
########################################################################################################################
|
||||||
|
########################################################################################################################
|
||||||
|
####START#### Code Quality ####START####
|
||||||
|
########################################################################################################################
|
||||||
|
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]
|
||||||
|
########################################################################################################################
|
||||||
|
####END#### Code Quality ####END####
|
||||||
|
########################################################################################################################
|
||||||
|
########################################################################################################################
|
||||||
|
####START#### Static Application Security Tests ####START####
|
||||||
|
########################################################################################################################
|
||||||
|
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]
|
||||||
|
########################################################################################################################
|
||||||
|
####END#### Static Application Security Tests ####END####
|
||||||
|
########################################################################################################################
|
||||||
|
########################################################################################################################
|
||||||
|
########################################################################################################################
|
||||||
|
####END#### Test stage ####END####
|
||||||
|
########################################################################################################################
|
||||||
|
########################################################################################################################
|
||||||
@@ -1,17 +1,64 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
PACKAGE_DIR="$@"
|
||||||
|
mkdir ${PACKAGE_DIR}
|
||||||
|
|
||||||
binaries=("komodo-cli" "komodod")
|
binaries=("komodo-cli" "komodod")
|
||||||
|
alllibs=()
|
||||||
|
for binary in "${binaries[@]}";
|
||||||
|
do
|
||||||
|
# do the work in the destination directory
|
||||||
|
cp src/${binary} ${PACKAGE_DIR}
|
||||||
|
# find the dylibs to copy for komodod
|
||||||
|
DYLIBS=`otool -L ${PACKAGE_DIR}/${binary} | grep "/usr/local" | awk -F' ' '{ print $1 }'`
|
||||||
|
echo "copying ${DYLIBS} to ${PACKAGE_DIR}"
|
||||||
|
# copy the dylibs to the srcdir
|
||||||
|
for dylib in ${DYLIBS}; do cp -rf ${dylib} ${PACKAGE_DIR}; done
|
||||||
|
done
|
||||||
|
|
||||||
|
libraries=("libgcc_s.1.dylib" "libgomp.1.dylib" "libidn2.0.dylib" "libstdc++.6.dylib")
|
||||||
|
|
||||||
|
for binary in "${libraries[@]}";
|
||||||
|
do
|
||||||
|
# find the dylibs to copy for komodod
|
||||||
|
DYLIBS=`otool -L ${PACKAGE_DIR}/${binary} | grep "/usr/local" | awk -F' ' '{ print $1 }'`
|
||||||
|
echo "copying ${DYLIBS} to ${PACKAGE_DIR}"
|
||||||
|
# copy the dylibs to the srcdir
|
||||||
|
for dylib in ${DYLIBS}; do cp -rf ${dylib} ${PACKAGE_DIR}; alllibs+=(${dylib}); done
|
||||||
|
done
|
||||||
|
|
||||||
|
indirectlibraries=("libintl.8.dylib" "libunistring.2.dylib")
|
||||||
|
|
||||||
|
for binary in "${indirectlibraries[@]}";
|
||||||
|
do
|
||||||
|
# Need to undo this for the dylibs when we are done
|
||||||
|
chmod 755 src/${binary}
|
||||||
|
# find the dylibs to copy for komodod
|
||||||
|
DYLIBS=`otool -L ${PACKAGE_DIR}/${binary} | grep "/usr/local" | awk -F' ' '{ print $1 }'`
|
||||||
|
echo "copying indirect ${DYLIBS} to ${PACKAGE_DIR}"
|
||||||
|
# copy the dylibs to the dest dir
|
||||||
|
for dylib in ${DYLIBS}; do cp -rf ${dylib} ${PACKAGE_DIR}; alllibs+=(${dylib}); done
|
||||||
|
done
|
||||||
|
|
||||||
for binary in "${binaries[@]}";
|
for binary in "${binaries[@]}";
|
||||||
do
|
do
|
||||||
# find the dylibs to copy for komodod
|
|
||||||
DYLIBS=`otool -L src/$binary | grep "/usr/local" | awk -F' ' '{ print $1 }'`
|
|
||||||
echo "copying $DYLIBS to $src"
|
|
||||||
# copy the dylibs to the srcdir
|
|
||||||
for dylib in $DYLIBS; do cp -rf $dylib src/; done
|
|
||||||
|
|
||||||
# modify komodod to point to dylibs
|
# modify komodod to point to dylibs
|
||||||
echo "modifying $binary to use local libraries"
|
echo "modifying ${binary} to use local libraries"
|
||||||
for dylib in $DYLIBS; do install_name_tool -change $dylib @executable_path/`basename $dylib` src/$binary; done;
|
for dylib in "${alllibs[@]}"
|
||||||
chmod +x src/$binary
|
do
|
||||||
|
echo "Next lib is ${dylib} "
|
||||||
|
install_name_tool -change ${dylib} @executable_path/`basename ${dylib}` ${PACKAGE_DIR}/${binary}
|
||||||
|
done
|
||||||
|
chmod +x ${PACKAGE_DIR}/${binary}
|
||||||
|
done
|
||||||
|
|
||||||
|
for binary in "${libraries[@]}";
|
||||||
|
do
|
||||||
|
# modify libraries to point to dylibs
|
||||||
|
echo "modifying ${binary} to use local libraries"
|
||||||
|
for dylib in "${alllibs[@]}"
|
||||||
|
do
|
||||||
|
echo "Next lib is ${dylib} "
|
||||||
|
install_name_tool -change ${dylib} @executable_path/`basename ${dylib}` ${PACKAGE_DIR}/${binary}
|
||||||
|
done
|
||||||
done
|
done
|
||||||
|
|||||||
Reference in New Issue
Block a user