chore: simplify build script quoting

This commit is contained in:
bstein 2025-12-18 01:53:09 -03:00
parent 2d7df564ce
commit 7c67bd31b0

69
Jenkinsfile vendored
View File

@ -131,57 +131,58 @@ PY
stage('Build & push (podman/buildah)') {
steps {
container('builder') {
sh """
sh '''
set -euo pipefail
export VERSIONTAG=\"${env.HARBOR_VERSION_RESOLVED}${TAG_SUFFIX}.${BUILD_NUMBER}\"
export BASEIMAGETAG=\"${env.HARBOR_VERSION_RESOLVED}${TAG_SUFFIX}.${BUILD_NUMBER}\"
export IMAGENAMESPACE=\"${IMAGE_NAMESPACE}\"
export BASEIMAGENAMESPACE=\"${IMAGE_NAMESPACE}\"
VERSION_TAG="${HARBOR_VERSION_RESOLVED}${TAG_SUFFIX}.${BUILD_NUMBER}"
export VERSIONTAG="${VERSION_TAG}"
export BASEIMAGETAG="${VERSION_TAG}"
export IMAGENAMESPACE="${IMAGE_NAMESPACE}"
export BASEIMAGENAMESPACE="${IMAGE_NAMESPACE}"
export DOCKERNETWORK=host
export PULL_BASE_FROM_DOCKERHUB=false
export BUILD_BASE=true
export BUILDTRIVYADP=false
export BUILD_INSTALLER=true
export BUILDAH_ISOLATION=chroot
export REGISTRY_AUTH_FILE=\"${DOCKER_CONFIG}/config.json\"
export REGISTRY_AUTH_FILE="${DOCKER_CONFIG}/config.json"
git config --global --add safe.directory '*'
cd \"${env.HARBOR_SRC_DIR}\"
cd "${HARBOR_SRC_DIR}"
make compile
make \\
VERSIONTAG=\"${env.HARBOR_VERSION_RESOLVED}${TAG_SUFFIX}.${BUILD_NUMBER}\" \\
BASEIMAGETAG=\"${env.HARBOR_VERSION_RESOLVED}${TAG_SUFFIX}.${BUILD_NUMBER}\" \\
IMAGENAMESPACE=\"${IMAGE_NAMESPACE}\" \\
BASEIMAGENAMESPACE=\"${IMAGE_NAMESPACE}\" \\
DOCKERNETWORK=host \\
PULL_BASE_FROM_DOCKERHUB=false \\
BUILD_BASE=true \\
BUILDTRIVYADP=false \\
BUILD_INSTALLER=true \\
make \
VERSIONTAG="${VERSION_TAG}" \
BASEIMAGETAG="${VERSION_TAG}" \
IMAGENAMESPACE="${IMAGE_NAMESPACE}" \
BASEIMAGENAMESPACE="${IMAGE_NAMESPACE}" \
DOCKERNETWORK=host \
PULL_BASE_FROM_DOCKERHUB=false \
BUILD_BASE=true \
BUILDTRIVYADP=false \
BUILD_INSTALLER=true \
build
for pair in \\
\"prepare:harbor-prepare\" \\
\"redis-photon:harbor-redis\" \\
\"nginx-photon:harbor-nginx\" \\
\"registry-photon:harbor-registry\"; do
pair_src=\"\\${pair%%:*}\"
pair_dst=\"\\${pair##*:}\"
src=\"${IMAGE_NAMESPACE}/\\${pair_src}:${env.HARBOR_VERSION_RESOLVED}${TAG_SUFFIX}.${BUILD_NUMBER}\"
dst=\"${IMAGE_NAMESPACE}/\\${pair_dst}:${env.HARBOR_VERSION_RESOLVED}${TAG_SUFFIX}.${BUILD_NUMBER}\"
if podman image exists \"$src\"; then
podman tag \"$src\" \"$dst\" || true
for pair in \
prepare:harbor-prepare \
redis-photon:harbor-redis \
nginx-photon:harbor-nginx \
registry-photon:harbor-registry; do
pair_src="${pair%%:*}"
pair_dst="${pair##*:}"
src="${IMAGE_NAMESPACE}/${pair_src}:${VERSION_TAG}"
dst="${IMAGE_NAMESPACE}/${pair_dst}:${VERSION_TAG}"
if podman image exists "${src}"; then
podman tag "${src}" "${dst}" || true
fi
done
podman images --format '{{.Repository}}:{{.Tag}}' \\
| awk -v ns=\"${IMAGE_NAMESPACE}/\" -v tag=\"${env.HARBOR_VERSION_RESOLVED}${TAG_SUFFIX}.${BUILD_NUMBER}\" 'index($0, ns)==1 && $0 ~ ":"tag"$"' \\
| sort -u \\
podman images --format '{{.Repository}}:{{.Tag}}' \
| awk -v ns="${IMAGE_NAMESPACE}/" -v tag="${VERSION_TAG}" 'index($0, ns)==1 && $0 ~ ":"tag"$"' \
| sort -u \
| while read -r img; do
echo \"Pushing ${img}\"
podman push \"${img}\"
echo "Pushing ${img}"
podman push "${img}"
done
"""
'''
}
}
}