#!/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"