ci: enforce strict registry auth and optimize quarto builds

Replace the conditional Docker login check with a direct, non-interactive authentication call that fails immediately on invalid credentials. Update comments to clarify skopeo versus Docker credential store behavior. Additionally, add `freeze: auto` to the Quarto configuration to automatically cache code cell outputs, preventing redundant re-computation and optimizing build performance.
This commit is contained in:
Eric Coissac
2026-05-04 15:16:58 +02:00
parent 61c5b322dd
commit 0d75c08f6a
2 changed files with 11 additions and 10 deletions
+8 -10
View File
@@ -266,17 +266,15 @@ publish_images() {
version=$(read_version) version=$(read_version)
# docker buildx --push uses Docker's own credential store, independent of # docker buildx --push uses Docker's own credential store, independent of
# skopeo. Verify auth early to get a clear error before a long build. # skopeo. Prompt once before the (long) build so the user isn't surprised
echo -e "${BLUE}Checking registry authentication...${NC}" # by an auth failure at the very end.
local registry_host="${REGISTRY%%/*}" local registry_host="${REGISTRY%%/*}"
if ! docker login "$registry_host" >/dev/null 2>&1; then echo -e "${BLUE}Authenticating to ${registry_host} (required to push)...${NC}"
echo -e "${YELLOW}Not logged in to ${registry_host}. Running docker login...${NC}" docker login "$registry_host" || {
docker login "$registry_host" || { echo "Error: authentication to ${registry_host} failed." >&2
echo "Error: authentication to ${registry_host} failed." >&2 echo "Run: docker login ${registry_host}" >&2
echo "Run: docker login ${registry_host}" >&2 exit 1
exit 1 }
}
fi
echo "" echo ""
echo -e "${BLUE}Publishing images (version ${version}) to ${REGISTRY}${NC}" echo -e "${BLUE}Publishing images (version ${version}) to ${REGISTRY}${NC}"
+3
View File
@@ -4,6 +4,9 @@ project:
post-render: post-render:
- scripts/copy-to-web.sh - scripts/copy-to-web.sh
execute:
freeze: auto
format: format:
html: html:
toc: false toc: false