Make Observatory staging deploy rerunnable (#155)
Some checks are pending
CI / lint-and-test (push) Waiting to run

This commit is contained in:
twentyOne2x 2026-07-15 03:51:54 +02:00 committed by GitHub
parent 92da54d804
commit 53c8de0a19
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -74,12 +74,21 @@ jobs:
set -euo pipefail set -euo pipefail
tag="${GITHUB_SHA::12}" tag="${GITHUB_SHA::12}"
image="${REGION}-docker.pkg.dev/${PROJECT_ID}/${REPOSITORY}/${IMAGE_NAME}:${tag}" image="${REGION}-docker.pkg.dev/${PROJECT_ID}/${REPOSITORY}/${IMAGE_NAME}:${tag}"
digest="$(gcloud artifacts docker images describe "${image}" \
--project="${PROJECT_ID}" \
--format='value(image_summary.digest)' 2>/dev/null || true)"
if [[ -n "${digest}" ]]; then
docker pull "${image}"
else
docker build -f Dockerfile.observatory-read-adapter -t "${image}" . docker build -f Dockerfile.observatory-read-adapter -t "${image}" .
fi
docker run --rm --env PYTHONPYCACHEPREFIX=/tmp/pycache \ docker run --rm --env PYTHONPYCACHEPREFIX=/tmp/pycache \
"${image}" python -m compileall -q /app/observatory_read_adapter "${image}" python -m compileall -q /app/observatory_read_adapter
docker run --rm "${image}" python -c 'import observatory_read_adapter; print("adapter-import-ok")' docker run --rm "${image}" python -c 'import observatory_read_adapter; print("adapter-import-ok")'
if [[ -z "${digest}" ]]; then
docker push "${image}" | tee docker-push.log docker push "${image}" | tee docker-push.log
digest="$(awk '/digest: sha256:/ {print $3}' docker-push.log | tail -1)" digest="$(awk '/digest: sha256:/ {print $3}' docker-push.log | tail -1)"
fi
test -n "${digest}" test -n "${digest}"
image_ref="${image}@${digest}" image_ref="${image}@${digest}"
printf 'image_ref=%s\n' "${image_ref}" >> "${GITHUB_OUTPUT}" printf 'image_ref=%s\n' "${image_ref}" >> "${GITHUB_OUTPUT}"