#!/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" preload_host_docker() { local tag="${1##*:}" echo "Preloading Coolify host docker: ${REGISTRY_IMAGE}:${tag}" $DOCKER run --rm \ --network "${FORGEJO_NETWORK}" \ -v /var/run/docker.sock:/var/run/docker.sock \ quay.io/skopeo/stable:v1.17.0 \ copy \ "docker://${FORGEJO_HOST}:3000/epistemophiliac/erpnext:${tag}" \ "docker-daemon:${REGISTRY_IMAGE}:${tag}" \ --src-creds "${REGISTRY_USER}:${REGISTRY_PASSWORD}" \ --src-tls-verify=false \ --retry-times 3 } preload_host_docker "${REGISTRY_IMAGE}:${IMAGE_TAG}" preload_host_docker "${REGISTRY_IMAGE}:main" echo "Pushed via internal Forgejo and preloaded on host docker"