91 lines
1.5 KiB
Bash
Executable File
91 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
#set -x
|
|
|
|
NC_VERSION=18
|
|
LOCAL_IMAGE=xaicorp/nextcloud
|
|
TAG=${NC_VERSION}.0-${BUILD_NUMBER:-dev}
|
|
REMOTE_IMAGE=dkregistry.xai-corp.net:5000/${LOCAL_IMAGE}:${TAG}
|
|
|
|
LOG=$(mktemp)
|
|
|
|
export LOCAL_IMAGE
|
|
export REMOTE_IMAGE
|
|
export TAG
|
|
|
|
dc() {
|
|
export NC_VERSION=${NC_VERSION}
|
|
# shellcheck disable=SC2068
|
|
docker-compose \
|
|
-f docker-compose.yml \
|
|
-f docker-compose.build.yml \
|
|
$@
|
|
}
|
|
|
|
####
|
|
build() {
|
|
echo -e "\e[33m building the image\e[39m"
|
|
dc build
|
|
}
|
|
|
|
build_test() {
|
|
echo -e "\e[33m testing the image\e[39m"
|
|
|
|
dc run --rm app php /usr/src/nextcloud/occ --version | grep ${NC_VERSION}
|
|
|
|
|
|
#test for smbclient installed
|
|
dc run --rm --user www-data app which smbclient
|
|
}
|
|
|
|
|
|
|
|
build_save() {
|
|
echo -e "\e[33m saving the image\e[39m"
|
|
|
|
docker tag "$LOCAL_IMAGE:$TAG" "$REMOTE_IMAGE"
|
|
docker push "$REMOTE_IMAGE"
|
|
}
|
|
|
|
function trap_exit() {
|
|
code=$?
|
|
dc down
|
|
if [ $code -gt 0 ]; then
|
|
echo
|
|
cat "$LOG"
|
|
rm "$LOG"
|
|
dc logs --tail=10
|
|
echo -e "\033[31mFailed to build functional image\033[39m"
|
|
exit $code
|
|
fi
|
|
|
|
rm "$LOG"
|
|
echo -e "\033[32mSuccess:\033[39m ${LOCAL_IMAGE}:${TAG} successfully built"
|
|
}
|
|
trap trap_exit EXIT
|
|
|
|
print_usage() {
|
|
printf "Usage: %s: [-b] [-t] [-s] \n" "$0"
|
|
echo -b build
|
|
echo -t test
|
|
echo -s push to registry
|
|
echo -h help
|
|
exit 0
|
|
}
|
|
|
|
######
|
|
if [ -z "$1" ]; then
|
|
build && build_test && build_save
|
|
exit
|
|
fi
|
|
|
|
while getopts btdhs name
|
|
do
|
|
case $name in
|
|
b) build;;
|
|
t) build_test;;
|
|
s) build_save;;
|
|
*) print_usage;;
|
|
esac
|
|
done
|