diff --git a/scripts/run_or_skip.sh b/scripts/run_or_skip.sh index cb5a2ad4e7..6e11374404 100755 --- a/scripts/run_or_skip.sh +++ b/scripts/run_or_skip.sh @@ -3,7 +3,7 @@ # Usage: ./run_or_skip.sh # Example: ./run_or_skip.sh lint-force "img1;img2" -set -euox pipefail +set -euo pipefail if [ -z "$CACHE_DIR" ]; then echo "CACHE_DIR is not set. Please set it to a valid directory." @@ -23,10 +23,10 @@ get_image_ids() { local id=$(docker image inspect "$img" --format='{{.Id}}' 2>/dev/null || true) if [[ -z $id ]]; then docker pull "$img" >/dev/null 2>&1 || true - id="$(docker image inspect "$img" --format='{{.Id}}' 2>/dev/null || true)" + id=$(docker image inspect "$img" --format='{{.Id}}' 2>/dev/null || true) fi if [[ -z $id ]]; then - id="$(docker image inspect "$img" --format='{{.Id}}' 2>/dev/null || true)" + id=$(docker image inspect "$img" --format='{{.Id}}' 2>/dev/null || true) fi id=${id:-new-and-not-pullable-or-failed-to-build} id="${img}@${id}" @@ -36,20 +36,28 @@ get_image_ids() { echo "$ids" } -OLD_DIGEST=$(cat "$DIGEST_FILE" 2>/dev/null || echo "") -OLD_STATUS=$(echo "$OLD_DIGEST" | cut -d ';' -f1) -OLD_IDS=$(echo "$OLD_DIGEST" | cut -d ';' -f2-99) -CURRENT_IMAGE_IDS=$(get_image_ids) -docker images -echo $CURRENT_IMAGE_IDS -if [[ "$OLD_IDS" == "$CURRENT_IMAGE_IDS" ]]; then +PREVIOUS_DIGEST=$(cat "$DIGEST_FILE" 2>/dev/null || echo "") +PREVIOUS_STATUS=$(echo "$PREVIOUS_DIGEST" | cut -d ';' -f1) +PREVIOUS_IMAGE_IDS=$(echo "$PREVIOUS_DIGEST" | cut -d ';' -f2-99) +CURRENT_IMAGE_IDS="$(get_image_ids)" + if [[ "$PREVIOUS_IMAGE_IDS" == "$CURRENT_IMAGE_IDS" ]]; then if [[ "$FORCE" == "true" ]]; then echo "\$FORCE=$FORCE - Running $MAKE_TARGET despite unchanged images." else - echo "Skipping $MAKE_TARGET – all images unchanged, returning cached status $OLD_STATUS" - exit $OLD_STATUS + echo "Skipping $MAKE_TARGET – all images unchanged, returning cached status $PREVIOUS_STATUS" + exit $PREVIOUS_STATUS fi fi +echo "Images have changed" +echo +echo "PREVIOUS_IMAGE_IDS does not match CURRENT_IMAGE_IDS" +echo +echo "$PREVIOUS_IMAGE_IDS" +echo +echo "$CURRENT_IMAGE_IDS" +echo +docker images +echo echo "Running $MAKE_TARGET..." set +e make -j $MAKE_TARGET