From d3966a0bbdf475b353280d59424cc7b3e6bd8f6d Mon Sep 17 00:00:00 2001 From: Christos Manios Date: Mon, 5 Aug 2019 01:07:39 +0300 Subject: [PATCH] Add Docker Hub build hooks --- hooks/build | 9 +++++++++ hooks/post_checkout | 27 ++++++++++++++++++++++----- hooks/pre_build | 7 +++++++ 3 files changed, 38 insertions(+), 5 deletions(-) create mode 100755 hooks/build create mode 100755 hooks/pre_build diff --git a/hooks/build b/hooks/build new file mode 100755 index 0000000..203af0c --- /dev/null +++ b/hooks/build @@ -0,0 +1,9 @@ +#!/bin/bash + +MYVARSFILE=imagevars.sh +if [ -f ${MYVARSFILE}]; then + echo "Loading custom image name from file ${MYVARSFILE}" + . ${MYVARSFILE} +fi + +docker build --build-arg FROM_IMAGE_NAME="${ALPINE_IMAGE_NAME}" -f $DOCKERFILE_PATH -t $IMAGE_NAME . diff --git a/hooks/post_checkout b/hooks/post_checkout index 8f3c4aa..e1321f9 100755 --- a/hooks/post_checkout +++ b/hooks/post_checkout @@ -1,20 +1,37 @@ #!/bin/bash +# QEMU version variables +QEMU_EXE=qemu-arm-static +QEMU_VERSION=v4.0.0-2 + +# download qemu +# curl -L https://github.com/multiarch/qemu-user-static/releases/download/${QEMU_VERSION}/${QEMU_EXE}.tar.gz | tar zxvf - -C . + # https://stackoverflow.com/questions/37935415/bash-regex-string-variable-match -NEW_STRING="$1" +NEW_STRING="${DOCKER_TAG}" REGEX="^([^-]+)-?([^-]+)?$" +VARIANT_REGEX="(arm)(v[67])" +FROM_IMAGE_NAME="alpine:latest" echo $NEW_STRING; [[ $NEW_STRING =~ $REGEX ]] MY_BRANCH="${BASH_REMATCH[1]}" -MYVARIANT="${BASH_REMATCH[2]}" +ARC_PART="${BASH_REMATCH[2]}" -if [ -z $MYVARIANT ]; then - echo "Variant is empty" +if [ -z $ARC_PART ]; then + echo "Architecture part is empty" +else + [[ $ARC_PART =~ $VARIANT_REGEX ]] + ARCHITECTURE="${BASH_REMATCH[1]}" + ARC_VARIANT="${BASH_REMATCH[2]}" + + echo "Branch: ${MY_BRANCH} . Architecture: ${ARCHITECTURE}, Variant: ${ARC_VARIANT}" + FROM_IMAGE_NAME="${ARCHITECTURE}32${ARC_VARIANT}/$FROM_IMAGE_NAME" fi -echo "Branch: ${MY_BRANCH} . Variant: ${MYVARIANT}" +echo "Image name: ${FROM_IMAGE_NAME}. Exporting it to ENV" +echo "export ALPINE_IMAGE_NAME=${FROM_IMAGE_NAME}" > imagevars.sh diff --git a/hooks/pre_build b/hooks/pre_build new file mode 100755 index 0000000..40855f9 --- /dev/null +++ b/hooks/pre_build @@ -0,0 +1,7 @@ +#!/bin/bash + + +# Register qemu-*-static for all supported processors except the +# current one, but also remove all registered binfmt_misc before + +docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes