зеркало из https://github.com/microsoft/Oryx.git
562 строки
17 KiB
Bash
Executable File
562 строки
17 KiB
Bash
Executable File
#!/bin/bash
|
|
# --------------------------------------------------------------------------------------------
|
|
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
# Licensed under the MIT license.
|
|
# --------------------------------------------------------------------------------------------
|
|
|
|
set -ex
|
|
|
|
declare -r REPO_DIR=$( cd $( dirname "$0" ) && cd .. && pwd )
|
|
|
|
# Load all variables
|
|
source $REPO_DIR/build/__variables.sh
|
|
source $REPO_DIR/build/__functions.sh
|
|
source $REPO_DIR/build/__sdkStorageConstants.sh
|
|
source $REPO_DIR/build/__nodeVersions.sh
|
|
|
|
cd "$BUILD_IMAGES_BUILD_CONTEXT_DIR"
|
|
|
|
declare BUILD_SIGNED=""
|
|
|
|
# Check to see if the build is by scheduled ORYX-CI or other azure devops build
|
|
# SIGNTYPE is set to 'real' on the Oryx-CI build definition itself (not in yaml file)
|
|
if [ "$SIGNTYPE" == "real" ] || [ "$SIGNTYPE" == "Real" ]
|
|
then
|
|
# "SignType" will be real only for builds by scheduled and/or manual builds of ORYX-CI
|
|
BUILD_SIGNED="true"
|
|
else
|
|
# locally we need to fake "binaries" directory to get a successful "copybuildscriptbinaries" build stage
|
|
mkdir -p $BUILD_IMAGES_BUILD_CONTEXT_DIR/binaries
|
|
fi
|
|
|
|
# NOTE: We are using only one label here and put all information in it
|
|
# in order to limit the number of layers that are created
|
|
labelContent="git_commit=$GIT_COMMIT, build_number=$BUILD_NUMBER, release_tag_name=$RELEASE_TAG_NAME"
|
|
|
|
# https://medium.com/@Drew_Stokes/bash-argument-parsing-54f3b81a6a8f
|
|
PARAMS=""
|
|
while (( "$#" )); do
|
|
case "$1" in
|
|
-t|--type)
|
|
imageTypeToBuild=$2
|
|
shift 2
|
|
;;
|
|
-s|--sdk-storage-account-url)
|
|
sdkStorageAccountUrl=$2
|
|
shift 2
|
|
;;
|
|
--) # end argument parsing
|
|
shift
|
|
break
|
|
;;
|
|
-*|--*=) # unsupported flags
|
|
echo "Error: Unsupported flag $1" >&2
|
|
exit 1
|
|
;;
|
|
*) # preserve positional arguments
|
|
PARAMS="$PARAMS $1"
|
|
shift
|
|
;;
|
|
esac
|
|
done
|
|
# set positional arguments in their proper place
|
|
eval set -- "$PARAMS"
|
|
|
|
echo
|
|
echo "Image type to build is set to: $imageTypeToBuild"
|
|
|
|
if [ -z "$sdkStorageAccountUrl" ]; then
|
|
sdkStorageAccountUrl=$PROD_SDK_CDN_STORAGE_BASE_URL
|
|
fi
|
|
|
|
echo
|
|
echo "SDK storage account url set to: $sdkStorageAccountUrl"
|
|
|
|
declare -r supportFilesImageName="oryxdevmcr.azurecr.io/private/oryx/support-files-image-for-build"
|
|
|
|
function BuildAndTagStage()
|
|
{
|
|
local dockerFile="$1"
|
|
local stageName="$2"
|
|
local stageTagName="$ACR_PUBLIC_PREFIX/$2"
|
|
|
|
echo
|
|
echo "Building stage '$stageName' with tag '$stageTagName'..."
|
|
docker build \
|
|
--target $stageName \
|
|
-t $stageTagName \
|
|
-f "$dockerFile" \
|
|
.
|
|
}
|
|
|
|
# Create artifact dir & files
|
|
mkdir -p "$ARTIFACTS_DIR/images"
|
|
|
|
touch $ACR_BUILD_IMAGES_ARTIFACTS_FILE
|
|
> $ACR_BUILD_IMAGES_ARTIFACTS_FILE
|
|
|
|
function createImageNameWithReleaseTag() {
|
|
local imageNameToBeTaggedUniquely="$1"
|
|
# Retag build image with build number tags
|
|
if [ "$AGENT_BUILD" == "true" ]
|
|
then
|
|
IFS=':' read -ra IMAGE_NAME <<< "$imageNameToBeTaggedUniquely"
|
|
local repo="${IMAGE_NAME[0]}"
|
|
local tag="$BUILD_DEFINITIONNAME.$RELEASE_TAG_NAME"
|
|
if [ ${#IMAGE_NAME[@]} -eq 2 ]; then
|
|
local uniqueImageName="$imageNameToBeTaggedUniquely-$tag"
|
|
else
|
|
local uniqueImageName="$repo:$tag"
|
|
fi
|
|
|
|
echo
|
|
echo "Retagging image '$imageNameToBeTaggedUniquely' as '$uniqueImageName'..."
|
|
docker tag "$imageNameToBeTaggedUniquely" "$uniqueImageName"
|
|
|
|
# Write image list to artifacts file
|
|
echo "$uniqueImageName" >> $ACR_BUILD_IMAGES_ARTIFACTS_FILE
|
|
else
|
|
# Write non-ci image to artifacts file as is, for local testing
|
|
echo "$imageNameToBeTaggedUniquely" >> $ACR_BUILD_IMAGES_ARTIFACTS_FILE
|
|
fi
|
|
}
|
|
|
|
function buildGitHubRunnersUbuntuBaseImage() {
|
|
|
|
echo
|
|
echo "----Building the image which uses GitHub runners' buildpackdeps-focal-scm specific digest----------"
|
|
docker build -t "oryxdevmcr.azurecr.io/private/oryx/githubrunners-buildpackdeps-focal" \
|
|
-f "$BUILD_IMAGES_GITHUB_RUNNERS_BUILDPACKDEPS_FOCAL_DOCKERFILE" \
|
|
.
|
|
}
|
|
|
|
function buildGitHubRunnersBullseyeBaseImage() {
|
|
echo
|
|
echo "----Building the image which uses GitHub runners' buildpackdeps-bullseye-scm specific digest----------"
|
|
docker build -t "oryxdevmcr.azurecr.io/private/oryx/githubrunners-buildpackdeps-bullseye" \
|
|
-f "$BUILD_IMAGES_GITHUB_RUNNERS_BUILDPACKDEPS_BULLSEYE_DOCKERFILE" \
|
|
.
|
|
}
|
|
|
|
function buildGitHubRunnersBusterBaseImage() {
|
|
|
|
echo
|
|
echo "----Building the image which uses GitHub runners' buildpackdeps-buster-scm specific digest----------"
|
|
docker build -t "oryxdevmcr.azurecr.io/private/oryx/githubrunners-buildpackdeps-buster" \
|
|
-f "$BUILD_IMAGES_GITHUB_RUNNERS_BUILDPACKDEPS_BUSTER_DOCKERFILE" \
|
|
.
|
|
}
|
|
|
|
function buildGitHubRunnersBaseImage() {
|
|
echo
|
|
echo "----Building the image which uses GitHub runners' buildpackdeps-stretch specific digest----------"
|
|
docker build -t "oryxdevmcr.azurecr.io/private/oryx/githubrunners-buildpackdeps-stretch" \
|
|
-f "$BUILD_IMAGES_GITHUB_RUNNERS_BUILDPACKDEPS_STRETCH_DOCKERFILE" \
|
|
.
|
|
}
|
|
|
|
function buildTemporaryFilesImage() {
|
|
buildGitHubRunnersBaseImage
|
|
buildGitHubRunnersBusterBaseImage
|
|
buildGitHubRunnersUbuntuBaseImage
|
|
buildGitHubRunnersBullseyeBaseImage
|
|
|
|
# Create the following image so that it's contents can be copied to the rest of the images below
|
|
echo
|
|
echo "------Creating temporary files image-------"
|
|
docker build -t "oryxdevmcr.azurecr.io/private/oryx/support-files-image-for-build" \
|
|
-f "$BUILD_IMAGES_SUPPORT_FILES_DOCKERFILE" \
|
|
.
|
|
}
|
|
|
|
function buildBuildScriptGeneratorImage() {
|
|
buildTemporaryFilesImage
|
|
|
|
# Create the following image so that it's contents can be copied to the rest of the images below
|
|
echo
|
|
echo "-------------Creating build script generator image-------------------"
|
|
docker build -t "oryxdevmcr.azurecr.io/private/oryx/buildscriptgenerator" \
|
|
--build-arg AGENTBUILD=$BUILD_SIGNED \
|
|
--build-arg GIT_COMMIT=$GIT_COMMIT \
|
|
--build-arg BUILD_NUMBER=$BUILD_NUMBER \
|
|
--build-arg RELEASE_TAG_NAME=$RELEASE_TAG_NAME \
|
|
-f "$BUILD_IMAGES_BUILDSCRIPTGENERATOR_DOCKERFILE" \
|
|
.
|
|
}
|
|
|
|
function buildGitHubActionsImage() {
|
|
local debianFlavor=$1
|
|
local devImageTag=github-actions
|
|
local builtImageName="$ACR_BUILD_GITHUB_ACTIONS_IMAGE_NAME"
|
|
|
|
if [ -z "$debianFlavor" ] ; then
|
|
debianFlavor="stretch"
|
|
fi
|
|
devImageTag=$devImageTag-debian-$debianFlavor
|
|
echo "dev image tag: "$devImageTag
|
|
builtImageName=$builtImageName-debian-$debianFlavor
|
|
echo "built image name: "$builtImageName
|
|
|
|
buildBuildScriptGeneratorImage
|
|
|
|
echo
|
|
echo "-------------Creating build image for GitHub Actions-------------------"
|
|
docker build -t $builtImageName \
|
|
--build-arg AI_KEY=$APPLICATION_INSIGHTS_INSTRUMENTATION_KEY \
|
|
--build-arg SDK_STORAGE_BASE_URL_VALUE=$sdkStorageAccountUrl \
|
|
--build-arg DEBIAN_FLAVOR=$debianFlavor \
|
|
--label com.microsoft.oryx="$labelContent" \
|
|
-f "$BUILD_IMAGES_GITHUB_ACTIONS_DOCKERFILE" \
|
|
.
|
|
|
|
createImageNameWithReleaseTag $builtImageName
|
|
|
|
echo
|
|
echo "$builtImageName image history"
|
|
docker history $builtImageName
|
|
echo
|
|
|
|
|
|
docker tag $builtImageName $DEVBOX_BUILD_IMAGES_REPO:$devImageTag
|
|
|
|
docker build \
|
|
-t "$ORYXTESTS_BUILDIMAGE_REPO:$devImageTag" \
|
|
--build-arg PARENT_IMAGE_BASE=$devImageTag \
|
|
-f "$ORYXTESTS_GITHUB_ACTIONS_BUILDIMAGE_DOCKERFILE" \
|
|
.
|
|
}
|
|
|
|
function buildJamStackImage() {
|
|
local debianFlavor=$1
|
|
local devImageTag=azfunc-jamstack
|
|
local parentImageTag=github
|
|
local builtImageName="$ACR_AZURE_FUNCTIONS_JAMSTACK_IMAGE_NAME"
|
|
|
|
buildGitHubActionsImage $debianFlavor
|
|
|
|
if [ -z "$debianFlavor" ]; then
|
|
debianFlavor="stretch"
|
|
fi
|
|
parentImageTag=actions-debian-$debianFlavor
|
|
devImageTag=$devImageTag-debian-$debianFlavor
|
|
echo "dev image tag: "$devImageTag
|
|
builtImageName=$builtImageName-debian-$debianFlavor
|
|
echo "built image name: "$builtImageName
|
|
|
|
# NOTE: do not pass in label as it is inherited from base image
|
|
# Also do not pass in build-args as they are used in base image for creating environment variables which are in
|
|
# turn inherited by this image.
|
|
echo
|
|
echo "-------------Creating AzureFunctions JamStack image-------------------"
|
|
docker build -t $builtImageName \
|
|
-f "$BUILD_IMAGES_AZ_FUNCS_JAMSTACK_DOCKERFILE" \
|
|
--build-arg PARENT_DEBIAN_FLAVOR=$parentImageTag \
|
|
--build-arg DEBIAN_FLAVOR=$debianFlavor \
|
|
.
|
|
|
|
createImageNameWithReleaseTag $builtImageName
|
|
|
|
echo
|
|
echo "$builtImageName image history"
|
|
docker history $builtImageName
|
|
echo
|
|
|
|
docker tag $builtImageName $DEVBOX_BUILD_IMAGES_REPO:$devImageTag
|
|
}
|
|
|
|
function buildLtsVersionsImage() {
|
|
ltsBuildImageDockerFile=$BUILD_IMAGES_LTS_VERSIONS_DOCKERFILE
|
|
local debianFlavor=$1
|
|
local devImageTag=lts-versions
|
|
local builtImageName="$ACR_BUILD_LTS_VERSIONS_IMAGE_NAME"
|
|
local testImageName="$ORYXTESTS_BUILDIMAGE_REPO:lts-versions"
|
|
|
|
if [ -z "$debianFlavor" ] || [ "$debianFlavor" == "stretch" ]; then
|
|
debianFlavor="stretch"
|
|
else
|
|
testImageFile=$ORYXTESTS_LTS_VERSIONS_BUSTER_BUILDIMAGE_DOCKERFILE
|
|
ltsBuildImageDockerFile=$BUILD_IMAGES_LTS_VERSIONS_BUSTER_DOCKERFILE
|
|
fi
|
|
testImageName=$testImageName-debian-$debianFlavor
|
|
devImageTag=$devImageTag-debian-$debianFlavor
|
|
builtImageName=$builtImageName-debian-$debianFlavor
|
|
echo "dev image tag: "$devImageTag
|
|
echo "built image name: "$builtImageName
|
|
echo "test image name: "$testImageName
|
|
|
|
buildBuildScriptGeneratorImage
|
|
buildGitHubRunnersBaseImage $debianFlavor
|
|
|
|
BuildAndTagStage "$ltsBuildImageDockerFile" intermediate
|
|
|
|
echo
|
|
echo "-------------Creating lts versions build image-------------------"
|
|
docker build -t $builtImageName \
|
|
--build-arg AI_KEY=$APPLICATION_INSIGHTS_INSTRUMENTATION_KEY \
|
|
--build-arg SDK_STORAGE_BASE_URL_VALUE=$sdkStorageAccountUrl \
|
|
--label com.microsoft.oryx="$labelContent" \
|
|
-f "$ltsBuildImageDockerFile" \
|
|
.
|
|
|
|
createImageNameWithReleaseTag $builtImageName
|
|
|
|
echo
|
|
echo "$builtImageName image history"
|
|
docker history $builtImageName
|
|
echo
|
|
|
|
docker tag $builtImageName $DEVBOX_BUILD_IMAGES_REPO:$devImageTag
|
|
|
|
echo
|
|
echo "Building a base image for tests..."
|
|
# Do not write this image tag to the artifacts file as we do not intend to push it
|
|
|
|
docker build -t $testImageName \
|
|
--build-arg PARENT_IMAGE_BASE=$devImageTag \
|
|
-f "$ORYXTESTS_LTS_VERSIONS_BUILDIMAGE_DOCKERFILE" \
|
|
.
|
|
}
|
|
|
|
function buildLatestImages() {
|
|
local debianFlavor=$1
|
|
if [ -z "$debianFlavor" ] ; then
|
|
debianFlavor="stretch"
|
|
fi
|
|
buildLtsVersionsImage $debianFlavor
|
|
|
|
echo
|
|
echo "-------------Creating latest build images-------------------"
|
|
local builtImageName="$ACR_BUILD_IMAGES_REPO:debian-$debianFlavor"
|
|
# NOTE: do not pass in label as it is inherited from base image
|
|
# Also do not pass in build-args as they are used in base image for creating environment variables which are in
|
|
# turn inherited by this image.
|
|
docker build -t $builtImageName \
|
|
-f "$BUILD_IMAGES_DOCKERFILE" \
|
|
.
|
|
|
|
createImageNameWithReleaseTag $builtImageName
|
|
|
|
# retag latest image with no tag so that it by default can be pulled 4 separate ways:
|
|
# - build
|
|
# - build:latest
|
|
# - build:<releaseTag>
|
|
# - build:<osType>-<osVersion>-<releaseTag>
|
|
docker tag $builtImageName "$ACR_BUILD_IMAGES_REPO"
|
|
createImageNameWithReleaseTag $ACR_BUILD_IMAGES_REPO
|
|
|
|
echo
|
|
echo "$builtImageName image history"
|
|
docker history $builtImageName
|
|
echo
|
|
|
|
docker tag $builtImageName "$DEVBOX_BUILD_IMAGES_REPO:debian-$debianFlavor"
|
|
|
|
echo
|
|
echo "Building a base image for tests..."
|
|
# Do not write this image tag to the artifacts file as we do not intend to push it
|
|
local testImageName="$ORYXTESTS_BUILDIMAGE_REPO:debian-$debianFlavor"
|
|
docker build -t $testImageName \
|
|
-f "$ORYXTESTS_BUILDIMAGE_DOCKERFILE" \
|
|
.
|
|
}
|
|
|
|
function buildVsoImage() {
|
|
buildBuildScriptGeneratorImage
|
|
buildGitHubRunnersUbuntuBaseImage
|
|
local debianFlavor=$1
|
|
if [ -z "$debianFlavor" ] || [ "$debianFlavor" == "focal" ]; then
|
|
BUILD_IMAGE=$BUILD_IMAGES_VSO_FOCAL_DOCKERFILE
|
|
local builtImageName="$ACR_BUILD_VSO_FOCAL_IMAGE_NAME"
|
|
local tagName="vso-ubuntu-focal"
|
|
elif [ "$debianFlavor" == "bullseye" ]; then
|
|
BUILD_IMAGE=$BUILD_IMAGES_VSO_BULLSEYE_DOCKERFILE
|
|
local builtImageName="$ACR_BUILD_VSO_BULLSEYE_IMAGE_NAME"
|
|
local tagName="vso-debian-bullseye"
|
|
else
|
|
echo "Unsupported VSO image Debian flavor."
|
|
exit 1
|
|
fi
|
|
|
|
BuildAndTagStage "$BUILD_IMAGE" intermediate
|
|
echo
|
|
echo "-------------Creating VSO $debianFlavor build image-------------------"
|
|
|
|
docker build -t $builtImageName \
|
|
--build-arg AI_KEY=$APPLICATION_INSIGHTS_INSTRUMENTATION_KEY \
|
|
--build-arg SDK_STORAGE_BASE_URL_VALUE=$sdkStorageAccountUrl \
|
|
--label com.microsoft.oryx="$labelContent" \
|
|
-f "$BUILD_IMAGE" \
|
|
.
|
|
|
|
createImageNameWithReleaseTag $builtImageName
|
|
|
|
echo
|
|
echo "$builtImageName image history"
|
|
docker history $builtImageName
|
|
|
|
docker tag $builtImageName "$DEVBOX_BUILD_IMAGES_REPO:$tagName"
|
|
|
|
echo
|
|
echo "$builtImageName" >> $ACR_BUILD_IMAGES_ARTIFACTS_FILE
|
|
}
|
|
|
|
function buildCliImage() {
|
|
buildBuildScriptGeneratorImage
|
|
|
|
local debianFlavor=$1
|
|
local devImageRepo="$DEVBOX_CLI_BUILD_IMAGE_REPO"
|
|
local devImageTag="debian-$debianFlavor"
|
|
local builtImageName="$ACR_CLI_BUILD_IMAGE_REPO"
|
|
|
|
if [ -z "$debianFlavor" ] || [ $debianFlavor == "stretch" ] ; then
|
|
debianFlavor="stretch"
|
|
builtImageName="$builtImageName:debian-$debianFlavor"
|
|
else
|
|
builtImageName="$builtImageName-$debianFlavor:debian-$debianFlavor"
|
|
devImageRepo="$DEVBOX_CLI_BUILD_IMAGE_REPO-$debianFlavor"
|
|
fi
|
|
echo "dev image tag: "$devImageTag
|
|
echo "built image name: "$builtImageName
|
|
|
|
echo
|
|
echo "-------------Creating CLI image-------------------"
|
|
docker build -t $builtImageName \
|
|
--build-arg AI_KEY=$APPLICATION_INSIGHTS_INSTRUMENTATION_KEY \
|
|
--build-arg SDK_STORAGE_BASE_URL_VALUE=$sdkStorageAccountUrl \
|
|
--build-arg DEBIAN_FLAVOR=$debianFlavor \
|
|
--label com.microsoft.oryx="$labelContent" \
|
|
-f "$BUILD_IMAGES_CLI_DOCKERFILE" \
|
|
.
|
|
|
|
createImageNameWithReleaseTag $builtImageName
|
|
|
|
echo
|
|
echo "$builtImageName image history"
|
|
docker history $builtImageName
|
|
|
|
docker tag $builtImageName "$devImageRepo:$devImageTag"
|
|
}
|
|
|
|
function buildFullImage() {
|
|
buildBuildScriptGeneratorImage
|
|
|
|
local debianFlavor=$1
|
|
local devImageTag=full
|
|
local builtImageName="$ACR_BUILD_FULL_IMAGE_NAME"
|
|
|
|
if [ -z "$debianFlavor" ] ; then
|
|
debianFlavor="stretch"
|
|
fi
|
|
devImageTag=$devImageTag-debian-$debianFlavor
|
|
echo "dev image tag: "$devImageTag
|
|
builtImageName=$builtImageName-debian-$debianFlavor
|
|
echo "built image name: "$builtImageName
|
|
|
|
echo
|
|
echo "-------------Creating full image-------------------"
|
|
docker build -t $builtImageName \
|
|
--build-arg AI_KEY=$APPLICATION_INSIGHTS_INSTRUMENTATION_KEY \
|
|
--build-arg SDK_STORAGE_BASE_URL_VALUE=$sdkStorageAccountUrl \
|
|
--build-arg DEBIAN_FLAVOR=$debianFlavor \
|
|
--label com.microsoft.oryx="$labelContent" \
|
|
-f "$BUILD_IMAGES_FULL_DOCKERFILE" \
|
|
.
|
|
|
|
createImageNameWithReleaseTag $builtImageName
|
|
|
|
echo
|
|
echo "$builtImageName image history"
|
|
docker history $builtImageName
|
|
|
|
docker tag $builtImageName "$DEVBOX_BUILD_IMAGES_REPO:$devImageTag"
|
|
}
|
|
|
|
function buildBuildPackImage() {
|
|
# Build buildpack images
|
|
# 'pack create-builder' is not supported on Windows
|
|
if [[ "$OSTYPE" == "linux-gnu" ]] || [[ "$OSTYPE" == "darwin"* ]]; then
|
|
source $REPO_DIR/build/buildBuildpacksImages.sh
|
|
else
|
|
echo
|
|
echo "Skipping building Buildpacks images as platform '$OSTYPE' is not supported."
|
|
fi
|
|
}
|
|
|
|
if [ -z "$imageTypeToBuild" ]; then
|
|
buildGitHubActionsImage "bullseye"
|
|
buildGitHubActionsImage "buster"
|
|
buildGitHubActionsImage
|
|
buildJamStackImage "bullseye"
|
|
buildJamStackImage "buster"
|
|
buildJamStackImage
|
|
buildLtsVersionsImage "buster"
|
|
buildLtsVersionsImage
|
|
buildLatestImages
|
|
buildVsoImage "focal"
|
|
buildVsoImage "bullseye"
|
|
buildCliImage "buster"
|
|
buildCliImage
|
|
buildBuildPackImage
|
|
buildFullImage "buster"
|
|
buildFullImage "bullseye"
|
|
elif [ "$imageTypeToBuild" == "githubactions" ]; then
|
|
buildGitHubActionsImage
|
|
buildGitHubActionsImage "buster"
|
|
buildGitHubActionsImage "bullseye"
|
|
elif [ "$imageTypeToBuild" == "githubactions-buster" ]; then
|
|
buildGitHubActionsImage "buster"
|
|
elif [ "$imageTypeToBuild" == "githubactions-bullseye" ]; then
|
|
buildGitHubActionsImage "bullseye"
|
|
elif [ "$imageTypeToBuild" == "githubactions-stretch" ]; then
|
|
buildGitHubActionsImage
|
|
elif [ "$imageTypeToBuild" == "jamstack" ]; then
|
|
buildJamStackImage
|
|
buildJamStackImage "buster"
|
|
buildJamStackImage "bullseye"
|
|
elif [ "$imageTypeToBuild" == "jamstack-bullseye" ]; then
|
|
buildJamStackImage "bullseye"
|
|
elif [ "$imageTypeToBuild" == "jamstack-buster" ]; then
|
|
buildJamStackImage "buster"
|
|
elif [ "$imageTypeToBuild" == "jamstack-stretch" ]; then
|
|
buildJamStackImage
|
|
elif [ "$imageTypeToBuild" == "ltsversions" ]; then
|
|
buildLtsVersionsImage
|
|
buildLtsVersionsImage "buster"
|
|
elif [ "$imageTypeToBuild" == "ltsversions-buster" ]; then
|
|
buildLtsVersionsImage "buster"
|
|
elif [ "$imageTypeToBuild" == "latest" ]; then
|
|
buildLatestImages
|
|
elif [ "$imageTypeToBuild" == "full" ]; then
|
|
buildFullImage "bullseye"
|
|
buildFullImage "buster"
|
|
elif [ "$imageTypeToBuild" == "vso-focal" ]; then
|
|
buildVsoImage "focal"
|
|
elif [ "$imageTypeToBuild" == "vso-bullseye" ]; then
|
|
buildVsoImage "bullseye"
|
|
elif [ "$imageTypeToBuild" == "cli" ]; then
|
|
buildCliImage
|
|
buildCliImage "buster"
|
|
elif [ "$imageTypeToBuild" == "cli-buster" ]; then
|
|
buildCliImage "buster"
|
|
elif [ "$imageTypeToBuild" == "buildpack" ]; then
|
|
buildBuildPackImage
|
|
else
|
|
echo "Error: Invalid value for '--type' switch. Valid values are: \
|
|
githubactions, jamstack, ltsversions, latest, full, vso-focal, cli, buildpack"
|
|
exit 1
|
|
fi
|
|
|
|
echo
|
|
echo "List of images tagged (from '$ACR_BUILD_IMAGES_ARTIFACTS_FILE'):"
|
|
cat $ACR_BUILD_IMAGES_ARTIFACTS_FILE
|
|
|
|
echo
|
|
showDockerImageSizes
|
|
|
|
echo
|
|
dockerCleanupIfRequested
|
|
|
|
if [ -z "$BUILD_SIGNED" ]
|
|
then
|
|
rm -rf binaries
|
|
fi |