Model fixture image identity in release drill

This commit is contained in:
SimpleTest 2026-08-03 21:17:30 +03:00
parent c3f6905624
commit 8584308aba

View File

@ -60,9 +60,17 @@ printf '%s %s\n' "$bundle_hash" "$(basename -- "$bundle")" >"$bundle.sha256"
image_archive="$fixture/output/releases/incoming/who_need_help-$target_commit-images-linux-amd64.tar.gz" image_archive="$fixture/output/releases/incoming/who_need_help-$target_commit-images-linux-amd64.tar.gz"
printf 'isolated release drill image archive\n' | gzip -n >"$image_archive" printf 'isolated release drill image archive\n' | gzip -n >"$image_archive"
image_hash=$(sha256sum "$image_archive" | awk '{print $1}') image_hash=$(sha256sum "$image_archive" | awk '{print $1}')
fixture_candidate_id="sha256:$image_hash"
printf '%s %s\n' "$image_hash" "$(basename -- "$image_archive")" \ printf '%s %s\n' "$image_hash" "$(basename -- "$image_archive")" \
>"$image_archive.sha256" >"$image_archive.sha256"
fixture_image_config="$run_dir/fixture-image-config.json"
printf '%s\n' \
'{"architecture":"amd64","os":"linux","rootfs":{"type":"layers","diff_ids":[]}}' \
>"$fixture_image_config"
fixture_image_id="sha256:$(sha256sum "$fixture_image_config" | awk '{print $1}')"
[[ "$fixture_image_id" =~ ^sha256:[0-9a-f]{64}$ ]] || {
echo "Release drill generated an invalid fixture image ID." >&2
exit 1
}
image_manifest="$fixture/output/releases/incoming/who_need_help-$target_commit-images.manifest" image_manifest="$fixture/output/releases/incoming/who_need_help-$target_commit-images.manifest"
printf '%s\n' \ printf '%s\n' \
'format=1' \ 'format=1' \
@ -70,7 +78,7 @@ printf '%s\n' \
'platform=linux/amd64' \ 'platform=linux/amd64' \
'topology=compact' \ 'topology=compact' \
'image_count=1' \ 'image_count=1' \
"image=who-need-help:production-${target_commit:0:12}|$fixture_candidate_id" \ "image=who-need-help:production-${target_commit:0:12}|$fixture_image_id" \
>"$image_manifest" >"$image_manifest"
backup="$fixture/output/backups/production/pre-release.dump" backup="$fixture/output/backups/production/pre-release.dump"
printf 'isolated release drill backup\n' >"$backup" printf 'isolated release drill backup\n' >"$backup"
@ -194,7 +202,7 @@ if [ "$1" = inspect ]; then
"$MOCK_ENV_FILE" "$MOCK_ENV_FILE"
fi fi
;; ;;
'{{.Image}}') printf '%s\n' "$FIXTURE_CANDIDATE_ID" ;; '{{.Image}}') printf '%s\n' "$FIXTURE_IMAGE_ID" ;;
*) exit 1 ;; *) exit 1 ;;
esac esac
exit 0 exit 0
@ -202,7 +210,7 @@ fi
if [ "$1" = image ] && [ "$2" = inspect ] && if [ "$1" = image ] && [ "$2" = inspect ] &&
[ "$3" = --format ]; then [ "$3" = --format ]; then
case "$4" in case "$4" in
'{{.Id}}') printf '%s\n' "$FIXTURE_CANDIDATE_ID" ;; '{{.Id}}') printf '%s\n' "$FIXTURE_IMAGE_ID" ;;
'{{.Os}}/{{.Architecture}}') printf 'linux/amd64\n' ;; '{{.Os}}/{{.Architecture}}') printf 'linux/amd64\n' ;;
*) exit 1 ;; *) exit 1 ;;
esac esac
@ -230,7 +238,7 @@ container_env=(
--env "MOCK_GIT_STATE=$remote_root/git-state" --env "MOCK_GIT_STATE=$remote_root/git-state"
--env "MOCK_COMMAND_LOG=$remote_root/mock-commands.log" --env "MOCK_COMMAND_LOG=$remote_root/mock-commands.log"
--env "MOCK_ENV_FILE=$remote_root/.env" --env "MOCK_ENV_FILE=$remote_root/.env"
--env "FIXTURE_CANDIDATE_ID=$fixture_candidate_id" --env "FIXTURE_IMAGE_ID=$fixture_image_id"
--env "PATH=/mock-bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" --env "PATH=/mock-bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
) )
container_mounts=( container_mounts=(
@ -267,6 +275,9 @@ run_release() {
} }
run_release forward_only >"$run_dir/forward-success.out" run_release forward_only >"$run_dir/forward-success.out"
grep -Fx \
"image=who-need-help:production-${target_commit:0:12}|$fixture_image_id" \
"$image_manifest" >/dev/null
grep -Fx "APP_IMAGE=who-need-help:production-${target_commit:0:12}" \ grep -Fx "APP_IMAGE=who-need-help:production-${target_commit:0:12}" \
"$fixture/.env" >/dev/null "$fixture/.env" >/dev/null
grep -Fx "CADDY_IMAGE=who-need-help:caddy-production-${current_commit:0:12}" \ grep -Fx "CADDY_IMAGE=who-need-help:caddy-production-${current_commit:0:12}" \