gitlab-build-images/scripts/kaniko-image-build
2022-02-21 16:19:18 +01:00

58 lines
No EOL
1.4 KiB
Bash
Executable file

#!/usr/bin/env sh
set -e
if [ -z "$1" ] || [ ! -d "$1" ]; then
echo "Please supply an image that you want to build as an argument"
echo "Valid images are:"
ls -d -- */
exit 1
fi
IMAGE_BASE=${CI_REGISTRY_IMAGE:-frontend-build-images}
IMAGE_NAME=$(echo "$1" | sed "s#/##g")
COMMIT_REF=${CI_COMMIT_REF_NAME:-unstable}
IMAGE_TAG=$(cat "$IMAGE_NAME/VERSION")
if [ "$COMMIT_REF" = "$CI_DEFAULT_BRANCH" ]; then
DOCKER_IMAGE="$IMAGE_BASE/$IMAGE_NAME:$IMAGE_TAG"
else
IMAGE_POSTFIX=${CI_COMMIT_SHORT_SHA:-unstable}
DOCKER_IMAGE="$IMAGE_BASE/unstable/$IMAGE_NAME:$IMAGE_TAG-$IMAGE_POSTFIX"
fi
KANIKO_ARGS=${KANIKO_ARGS:-}
if [ "$CI" = "true" ]; then
echo "Running on CI, so we check if the image already exists"
if crane manifest "$DOCKER_IMAGE" >/dev/null; then
echo "Image $DOCKER_IMAGE already exists, skip building"
exit 0
fi
else
echo "Not running on CI, so not pushing"
KANIKO_ARGS="$KANIKO_ARGS --no-push"
fi
echo "Building image $DOCKER_IMAGE"
/kaniko/executor \
--context "$IMAGE_NAME" \
--dockerfile "$IMAGE_NAME/Dockerfile" \
--destination "$DOCKER_IMAGE" \
--single-snapshot \
$KANIKO_ARGS
if [ "$CI" = "true" ]; then
if [ "$COMMIT_REF" = "$CI_DEFAULT_BRANCH" ]; then
echo "Tagging $DOCKER_IMAGE as latest"
crane tag "$DOCKER_IMAGE" latest
fi
fi
echo $PATH
ls /usr/local/bin
crane version
/kaniko/executor version
echo "yay"