From 53c8de0a1959a744e17888df1a70e935dfef0143 Mon Sep 17 00:00:00 2001 From: twentyOne2x Date: Wed, 15 Jul 2026 03:51:54 +0200 Subject: [PATCH] Make Observatory staging deploy rerunnable (#155) --- .../workflows/gcp-observatory-read-adapter.yml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/.github/workflows/gcp-observatory-read-adapter.yml b/.github/workflows/gcp-observatory-read-adapter.yml index e4c088f..95b18a4 100644 --- a/.github/workflows/gcp-observatory-read-adapter.yml +++ b/.github/workflows/gcp-observatory-read-adapter.yml @@ -74,12 +74,21 @@ jobs: set -euo pipefail tag="${GITHUB_SHA::12}" image="${REGION}-docker.pkg.dev/${PROJECT_ID}/${REPOSITORY}/${IMAGE_NAME}:${tag}" - docker build -f Dockerfile.observatory-read-adapter -t "${image}" . + 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}" . + fi docker run --rm --env PYTHONPYCACHEPREFIX=/tmp/pycache \ "${image}" python -m compileall -q /app/observatory_read_adapter docker run --rm "${image}" python -c 'import observatory_read_adapter; print("adapter-import-ok")' - docker push "${image}" | tee docker-push.log - digest="$(awk '/digest: sha256:/ {print $3}' docker-push.log | tail -1)" + if [[ -z "${digest}" ]]; then + docker push "${image}" | tee docker-push.log + digest="$(awk '/digest: sha256:/ {print $3}' docker-push.log | tail -1)" + fi test -n "${digest}" image_ref="${image}@${digest}" printf 'image_ref=%s\n' "${image_ref}" >> "${GITHUB_OUTPUT}"