#!/usr/bin/env bash INPUT_IMAGE_NAME=$imageName INPUT_IMAGE_PREFIX=$imagePrefix INPUT_PUSH_IMAGE=$push INPUT_PULL_CACHE=$pullCache INPUT_DOCKERFILE_PATH=$path INPUT_PLATFORM=$platform set -e # shellcheck disable=SC2155 export LOWERCASE_INPUT_IMAGE_PREFIX="$(echo "$INPUT_IMAGE_PREFIX" | tr '[:upper:]' '[:lower:]')" IMAGE_NAME="$(echo "$LOWERCASE_INPUT_IMAGE_PREFIX" | sed 's/^https\?:\/\///')$INPUT_IMAGE_NAME" if [ -n "$DOCKER_CONFIG_BASE64" ]; then echo "Retrieving docker config" mkdir "$HOME/.docker/" echo "$DOCKER_CONFIG_BASE64" | base64 -d > "$HOME/.docker/config.json" fi; echo "Full image name: $IMAGE_NAME" if [ -z "$INPUT_IMAGE_NAME" ]; then echo "No image name given." exit 1 fi; DOCKER_BUILD_OPTIONS=("--progress" "plain" "-t" "$IMAGE_NAME") if [ -n "$INPUT_PLATFORM" ]; then DOCKER_BUILD_OPTIONS+=("--platform" "$INPUT_PLATFORM") fi if [ "$INPUT_PUSH_IMAGE" = "true" ]; then DOCKER_BUILD_OPTIONS+=("--push") fi if [ "$INPUT_PULL_CACHE" = "true" ]; then DOCKER_BUILD_OPTIONS+=("--cache-from" "$IMAGE_NAME") echo "Pulling for cache" docker pull "$IMAGE_NAME" || echo "Unable to find an image to pull." fi DOCKER_BUILD_OPTIONS+=("${INPUT_DOCKERFILE_PATH}") # shellcheck disable=SC2145 echo "Running docker buildx with options: ${DOCKER_BUILD_OPTIONS[@]}" echo "Building and pushing !" docker buildx build "${DOCKER_BUILD_OPTIONS[@]}" echo "imageName=${IMAGE_NAME}" >>"$GITEA_OUTPUT" exit 0