first commit
This commit is contained in:
152
travis-build-scripts/create-build-manifest.sh
Executable file
152
travis-build-scripts/create-build-manifest.sh
Executable file
@@ -0,0 +1,152 @@
|
||||
#!/bin/bash
|
||||
|
||||
# © Copyright IBM Corporation 2024
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
set -e
|
||||
|
||||
BINPATH="/usr/local/bin/"
|
||||
CV_YQ_VERSION=3.3.2
|
||||
echo "Installing yq..."
|
||||
curl -LO "https://github.com/mikefarah/yq/releases/download/$CV_YQ_VERSION/yq_linux_amd64"
|
||||
chmod +x yq_linux_amd64
|
||||
sudo mv yq_linux_amd64 ${BINPATH}/yq
|
||||
|
||||
usage="
|
||||
Usage: create-image-manifest.sh -f image-manifest.yaml
|
||||
Where:
|
||||
-f - The file name to use
|
||||
"
|
||||
|
||||
GREEN="\033[32m"
|
||||
RED="\033[31m"
|
||||
BLUE="\033[34m"
|
||||
PURPLE="\033[35m"
|
||||
AQUA="\033[36m"
|
||||
|
||||
END="\033[0m"
|
||||
|
||||
UNDERLINE="\033[4m"
|
||||
BOLD="\033[1m"
|
||||
ITALIC="\033[3m"
|
||||
TITLE="\n"${BLUE}${BOLD}${UNDERLINE}
|
||||
STEPTITLE=${BLUERIGHTARROW}" "${BOLD}${ITALIC}
|
||||
SUBSTEPTITLE=${MINIARROW}${MINIARROW}${MINIARROW}" "${ITALIC}
|
||||
RIGHTARROW="\xE2\x96\xB6"
|
||||
MINIARROW="\xE2\x96\xBB"
|
||||
BLUERIGHTARROW=${BLUE}${RIGHTARROW}${END}
|
||||
GREENRIGHTARROW=${GREEN}${RIGHTARROW}${END}
|
||||
|
||||
ERROR=${RED}
|
||||
|
||||
TICK="\xE2\x9C\x94"
|
||||
CROSS="\xE2\x9C\x97"
|
||||
GREENTICK=${GREEN}${TICK}${END}
|
||||
REDCROSS=${RED}${CROSS}${END}
|
||||
|
||||
|
||||
SPACER="\n\n"
|
||||
|
||||
MQ_VERSION_TAG=
|
||||
REGISTRY_USER=
|
||||
REGISTRY_CREDENTIAL=
|
||||
REGISTRY_HOSTNAME=
|
||||
REGISTRY_NAMESPACE=
|
||||
|
||||
|
||||
MQ_IMAGE_DEVSERVER_AMD64_DIGEST=
|
||||
MQ_IMAGE_DEVSERVER_S390X_DIGEST=
|
||||
MQ_IMAGE_DEVSERVER_PPC64LE_DIGEST=
|
||||
MANIFEST_SHA_DEV=
|
||||
|
||||
MQ_IMAGE_ADVANCEDSERVER_AMD64_DIGEST=
|
||||
MQ_IMAGE_ADVANCEDSERVER_S390X_DIGEST=
|
||||
MQ_IMAGE_ADVANCEDSERVER_PPC64LE_DIGEST=
|
||||
MANIFEST_SHA_ADV=
|
||||
|
||||
while getopts f:o:t:u:p:r:n:a:m:s: flag
|
||||
do
|
||||
case "${flag}" in
|
||||
f) IMAGE_MANIFEST_FILE=${OPTARG};;
|
||||
o) MQ_VERSION_TAG=${OPTARG};;
|
||||
t) MQ_IMAGE_DEVSERVER_AMD64_DIGEST=${OPTARG};;
|
||||
u) MQ_IMAGE_DEVSERVER_S390X_DIGEST=${OPTARG};;
|
||||
p) MQ_IMAGE_DEVSERVER_PPC64LE_DIGEST=${OPTARG};;
|
||||
r) MANIFEST_SHA_DEV=${OPTARG};;
|
||||
n) MQ_IMAGE_ADVANCEDSERVER_AMD64_DIGEST=${OPTARG};;
|
||||
a) MQ_IMAGE_ADVANCEDSERVER_S390X_DIGEST=${OPTARG};;
|
||||
m) MQ_IMAGE_ADVANCEDSERVER_PPC64LE_DIGEST=${OPTARG};;
|
||||
s) MANIFEST_SHA_ADV=${OPTARG};;
|
||||
esac
|
||||
done
|
||||
|
||||
MQ_TAG_REMOVED_DOT=$(echo "$MQ_VERSION_TAG" | awk -F'[.-]' '{print $1 "_" $2 "_" $3 "_" $4 "_" $5}')
|
||||
MQ_VERSION=$(echo "$MQ_VERSION_TAG" | awk -F'[.-]' '{print $1 "." $2 "." $3 "." $4 "-" $5}')
|
||||
|
||||
PRODUCTION_TAG="${MQ_VERSION}-${APAR_NUMBER}-${FIX_NUMBER}"
|
||||
|
||||
if [[ -z $IMAGE_MANIFEST_FILE ]] ; then
|
||||
printf "${REDCROSS} ${ERROR}You must specify a filename${END}\n"
|
||||
printf "${ERROR}$usage${END}\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DIR_PATH=$(dirname "$IMAGE_MANIFEST_FILE")
|
||||
# Create the directory if it does not exist
|
||||
if [ ! -d "$DIR_PATH" ]; then
|
||||
echo "Directory does not exist. Creating directory: $DIR_PATH"
|
||||
mkdir -p "$DIR_PATH"
|
||||
|
||||
# Check if the directory creation succeeded
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to create directory: $DIR_PATH"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
rm -f $IMAGE_MANIFEST_FILE
|
||||
touch $IMAGE_MANIFEST_FILE
|
||||
|
||||
|
||||
DATE_STAMP=`date --utc '+%Y-%m-%dT%H:%M:%S.%3N%Z' 2>&1` || EXIT_CODE=$?
|
||||
if [ "${EXIT_CODE}" != "0" ]; then
|
||||
DATE_STAMP=`date -u '+%Y-%m-%dT%H:%M:%S%Z'`
|
||||
fi
|
||||
|
||||
echo "Generating build manifest process started"
|
||||
|
||||
yq write -i $IMAGE_MANIFEST_FILE metadata.createdAt $DATE_STAMP
|
||||
yq write -i $IMAGE_MANIFEST_FILE metadata.commitId $TRAVIS_COMMIT
|
||||
yq write -i $IMAGE_MANIFEST_FILE metadata.travisBuildId $TRAVIS_BUILD_ID
|
||||
yq write -i $IMAGE_MANIFEST_FILE metadata.travisBuildUrl $TRAVIS_BUILD_WEB_URL
|
||||
yq write -i $IMAGE_MANIFEST_FILE metadata.stage dev_ifix
|
||||
yq write -i $IMAGE_MANIFEST_FILE images.operands.mq.${MQ_TAG_REMOVED_DOT}.ibmMQAdvancedServer.name ibm-mqadvanced-server
|
||||
yq write -i $IMAGE_MANIFEST_FILE images.operands.mq.${MQ_TAG_REMOVED_DOT}.ibmMQAdvancedServer.productionName ibm-mqadvanced-server
|
||||
yq write -i $IMAGE_MANIFEST_FILE images.operands.mq.${MQ_TAG_REMOVED_DOT}.ibmMQAdvancedServer.productionTag $PRODUCTION_TAG
|
||||
yq write -i $IMAGE_MANIFEST_FILE images.operands.mq.${MQ_TAG_REMOVED_DOT}.ibmMQAdvancedServer.tag $MQ_VERSION_TAG
|
||||
yq write -i $IMAGE_MANIFEST_FILE images.operands.mq.${MQ_TAG_REMOVED_DOT}.ibmMQAdvancedServer.digests.amd64 $MQ_IMAGE_ADVANCEDSERVER_AMD64_DIGEST
|
||||
yq write -i $IMAGE_MANIFEST_FILE images.operands.mq.${MQ_TAG_REMOVED_DOT}.ibmMQAdvancedServer.digests.s390x $MQ_IMAGE_ADVANCEDSERVER_S390X_DIGEST
|
||||
yq write -i $IMAGE_MANIFEST_FILE images.operands.mq.${MQ_TAG_REMOVED_DOT}.ibmMQAdvancedServer.digests.ppc64le $MQ_IMAGE_ADVANCEDSERVER_PPC64LE_DIGEST
|
||||
yq write -i $IMAGE_MANIFEST_FILE images.operands.mq.${MQ_TAG_REMOVED_DOT}.ibmMQAdvancedServer.digests.fatManifest $MANIFEST_SHA_ADV
|
||||
if [ "$PROMOTE_DEVELOPER_IMAGE_IFIX" = true ]; then
|
||||
yq write -i $IMAGE_MANIFEST_FILE images.operands.mq.${MQ_TAG_REMOVED_DOT}.ibmMQAdvancedServerDev.name ibm-mqadvanced-server-dev
|
||||
yq write -i $IMAGE_MANIFEST_FILE images.operands.mq.${MQ_TAG_REMOVED_DOT}.ibmMQAdvancedServerDev.productionName mq
|
||||
yq write -i $IMAGE_MANIFEST_FILE images.operands.mq.${MQ_TAG_REMOVED_DOT}.ibmMQAdvancedServerDev.productionTag $PRODUCTION_TAG
|
||||
yq write -i $IMAGE_MANIFEST_FILE images.operands.mq.${MQ_TAG_REMOVED_DOT}.ibmMQAdvancedServerDev.tag $MQ_VERSION_TAG
|
||||
yq write -i $IMAGE_MANIFEST_FILE images.operands.mq.${MQ_TAG_REMOVED_DOT}.ibmMQAdvancedServerDev.digests.amd64 $MQ_IMAGE_DEVSERVER_AMD64_DIGEST
|
||||
yq write -i $IMAGE_MANIFEST_FILE images.operands.mq.${MQ_TAG_REMOVED_DOT}.ibmMQAdvancedServerDev.digests.s390x $MQ_IMAGE_DEVSERVER_S390X_DIGEST
|
||||
yq write -i $IMAGE_MANIFEST_FILE images.operands.mq.${MQ_TAG_REMOVED_DOT}.ibmMQAdvancedServerDev.digests.ppc64le $MQ_IMAGE_DEVSERVER_PPC64LE_DIGEST
|
||||
yq write -i $IMAGE_MANIFEST_FILE images.operands.mq.${MQ_TAG_REMOVED_DOT}.ibmMQAdvancedServerDev.digests.fatManifest $MANIFEST_SHA_DEV
|
||||
fi
|
||||
echo "Generating build manifest process completed"
|
||||
Reference in New Issue
Block a user