fix: push supplemental images on release builds again (0.3.5 regression) #35
No files matched your search
@@ -27,7 +27,16 @@ IMAGE="${IMAGE_NAME:?IMAGE_NAME not set}"
|
||||
REGISTRY="${REGISTRY:-ghcr.io/KofTwentyTwo}"
|
||||
VERSION="${PROJECT_VERSION:?PROJECT_VERSION not set -- run export_version_vars first}"
|
||||
ENV_TAG="${DOCKER_ENV_TAG:-}"
|
||||
PUSH_IMAGES="${PUSH_IMAGES:-true}"
|
||||
# CircleCI renders a boolean orb parameter as "1"/"0" in a step environment, not
|
||||
# "true"/"false", so accept both spellings. Unset means push (release builds).
|
||||
case "$(echo "${PUSH_IMAGES-true}" | tr '[:upper:]' '[:lower:]')" in
|
||||
true | 1 | yes | on) PUSH_IMAGES=true ;;
|
||||
false | 0 | no | off | "") PUSH_IMAGES=false ;;
|
||||
*)
|
||||
echo "ERROR: PUSH_IMAGES must be true/false (or 1/0), got '${PUSH_IMAGES}'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
# run_trivy_image installs here in a previous CircleCI step.
|
||||
export PATH="${HOME}/bin:${PATH}"
|
||||
mkdir -p /tmp/trivy-supplemental-results
|
||||
|
||||
@@ -80,6 +80,43 @@ else
|
||||
fail
|
||||
fi
|
||||
|
||||
# Regression (0.3.5): CircleCI renders the boolean "push" parameter as "1"/"0" in
|
||||
# the step environment, and release builds silently skipped the push.
|
||||
for push in 1 true TRUE; do
|
||||
echo -n " TEST: push=${push} (release builds) publishes every supplemental image... "
|
||||
: > "${CALL_LOG}"
|
||||
if PUSH_IMAGES="${push}" bash "${SRC_SCRIPTS}/build_push_supplemental.sh" > "${WORK}/supplemental.log" &&
|
||||
[[ $(grep -c '^docker push ' "${CALL_LOG}") == 4 ]] &&
|
||||
grep -q '^docker push ghcr.io/example/app-migrations:' "${CALL_LOG}" &&
|
||||
grep -q '^docker push ghcr.io/example/app-worker:' "${CALL_LOG}" &&
|
||||
grep -q 'push=true' "${WORK}/supplemental.log"; then
|
||||
pass
|
||||
else
|
||||
fail
|
||||
fi
|
||||
done
|
||||
|
||||
for push in 0 false ""; do
|
||||
echo -n " TEST: push='${push}' (PR scans) publishes nothing... "
|
||||
: > "${CALL_LOG}"
|
||||
if PUSH_IMAGES="${push}" bash "${SRC_SCRIPTS}/build_push_supplemental.sh" > "${WORK}/supplemental.log" &&
|
||||
! grep -Eq '^docker (push|tag) ' "${CALL_LOG}"; then
|
||||
pass
|
||||
else
|
||||
fail
|
||||
fi
|
||||
done
|
||||
|
||||
echo -n " TEST: an unrecognised push value fails instead of guessing... "
|
||||
: > "${CALL_LOG}"
|
||||
if PUSH_IMAGES=maybe bash "${SRC_SCRIPTS}/build_push_supplemental.sh" > "${WORK}/supplemental.log" 2>&1; then
|
||||
fail
|
||||
elif ! grep -Eq '^docker (build|tag|push) ' "${CALL_LOG}" && grep -q "must be true/false" "${WORK}/supplemental.log"; then
|
||||
pass
|
||||
else
|
||||
fail
|
||||
fi
|
||||
|
||||
for push in false true; do
|
||||
echo -n " TEST: push=${push} fails on HIGH/CRITICAL findings before any push... "
|
||||
: > "${CALL_LOG}"
|
||||
|
||||
Reference in new issue
Block a user