erpnext/scripts/ci/jenkins-push-image.sh
epistemophiliac 26933f3e66 Push registry images via Skopeo on internal Forgejo network.
Bypass Cloudflare/Traefik 413 limits by copying to forgejo:3000 over Docker network instead of docker push to git.aexoradao.com.
2026-06-16 20:17:46 -04:00

36 lines
1.3 KiB
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
# shellcheck source=/dev/null
source .ci-bin/ci-env.sh
REGISTRY_IMAGE="${REGISTRY_IMAGE:-git.aexoradao.com/epistemophiliac/erpnext}"
REGISTRY_HOST="${REGISTRY_HOST:-git.aexoradao.com}"
FORGEJO_HOST="${FORGEJO_HOST:-forgejo-vydgeq365afzmxe4s1d75fwv}"
FORGEJO_NETWORK="${FORGEJO_NETWORK:-vydgeq365afzmxe4s1d75fwv}"
GIT_SHA="$(git rev-parse --short HEAD)"
IMAGE_TAG="${IMAGE_TAG:-main-${GIT_SHA}}"
if [ -z "${REGISTRY_USER:-}" ] || [ -z "${REGISTRY_PASSWORD:-}" ]; then
echo "ERROR: set REGISTRY_USER and REGISTRY_PASSWORD (Jenkins forgejo-erpnext credentials)"
exit 1
fi
push_with_skopeo() {
local ref="$1"
echo "Skopeo push ${ref} -> http://${FORGEJO_HOST}:3000 (internal, bypasses Cloudflare/Traefik)"
$DOCKER run --rm \
--network "${FORGEJO_NETWORK}" \
-v /var/run/docker.sock:/var/run/docker.sock \
quay.io/skopeo/stable:v1.17.0 \
copy "docker-daemon:${ref}" \
"docker://${FORGEJO_HOST}:3000/epistemophiliac/erpnext:${ref##*:}" \
--dest-creds "${REGISTRY_USER}:${REGISTRY_PASSWORD}" \
--dest-tls-verify=false \
--retry-times 3
}
push_with_skopeo "${REGISTRY_IMAGE}:${IMAGE_TAG}"
push_with_skopeo "${REGISTRY_IMAGE}:main"
echo "Pushed via internal Forgejo (public pull: ${REGISTRY_IMAGE}:<tag>)"