Update registry login fallbacks

This commit is contained in:
sandrodach committed 2026-10-23 23:47:04 +02:00
1 parent 274a6a4c5d
commit 4e25ff47bb
1 file changed
+24 -10
+24 -10
View File
@@ -1,6 +1,5 @@
name: Docker Build, Test & Push
on:
push:
branches-ignore:
@@ -12,8 +11,9 @@ on:
# KONFIGURATION (Für andere Repositories einfach hier oben anpassen)
# ==============================================================================
env:
# Registry & Image-Name (CUSTOM_IMAGE_NAME leer lassen = automatisch <user>/<repo>)
# Registry, Benutzer & Image-Name (leer lassen = automatisch aus Gitea-Kontext)
REGISTRY: git.dsit.me
REGISTRY_USER: ""
CUSTOM_IMAGE_NAME: ""
# Pfad zum Build-Kontext und Dockerfile
@@ -155,17 +155,31 @@ jobs:
- name: Login to Gitea Container Registry
if: success() && gitea.event_name != 'pull_request'
env:
PKG_TOKEN: ${{ secrets.PACKAGE_TOKEN }}
FALLBACK_TOKEN: ${{ gitea.token }}
SECRET_TOKEN: ${{ secrets.PACKAGE_TOKEN }}
VAR_TOKEN: ${{ vars.PACKAGE_TOKEN }}
DEFAULT_TOKEN: ${{ gitea.token }}
ACTOR_NAME: ${{ gitea.actor }}
OWNER_NAME: ${{ gitea.repository_owner }}
run: |
if [ -n "${PKG_TOKEN}" ]; then
echo "Nutze hinterlegtes Secret PACKAGE_TOKEN für Registry-Login..."
TOKEN="${PKG_TOKEN}"
# Benutzername bestimmen (REGISTRY_USER -> gitea.actor -> gitea.repository_owner)
LOGIN_USER="${REGISTRY_USER:-${ACTOR_NAME:-${OWNER_NAME}}}"
echo "Registry-Login Benutzer: '${LOGIN_USER}'"
# Token bestimmen (Secrets -> Variables -> gitea.token)
if [ -n "${SECRET_TOKEN}" ]; then
echo "Token-Quelle: secrets.PACKAGE_TOKEN (Länge: ${#SECRET_TOKEN} Zeichen)"
RAW_TOKEN="${SECRET_TOKEN}"
elif [ -n "${VAR_TOKEN}" ]; then
echo "Token-Quelle: vars.PACKAGE_TOKEN (Länge: ${#VAR_TOKEN} Zeichen)"
RAW_TOKEN="${VAR_TOKEN}"
else
echo "WARNUNG: Secret PACKAGE_TOKEN ist leer/nicht gesetzt! Versuche Fallback auf gitea.token..."
TOKEN="${FALLBACK_TOKEN}"
echo "WARNUNG: Weder secrets.PACKAGE_TOKEN noch vars.PACKAGE_TOKEN gefunden! Nutze gitea.token (Länge: ${#DEFAULT_TOKEN} Zeichen)"
RAW_TOKEN="${DEFAULT_TOKEN}"
fi
echo "${TOKEN}" | docker login "${REGISTRY}" -u "${{ gitea.actor }}" --password-stdin
# Eventuelle Leerzeichen/Zeilenumbrüche entfernen
CLEAN_TOKEN=$(printf '%s' "${RAW_TOKEN}" | tr -d '\r\n ')
printf '%s\n' "${CLEAN_TOKEN}" | docker login "${REGISTRY}" -u "${LOGIN_USER}" --password-stdin
- name: Push Docker Image
if: success() && gitea.event_name != 'pull_request'