From 307fec6b99cd9e3cfe0aea5e171de43b237d1886 Mon Sep 17 00:00:00 2001 From: Kerim Atilgan Date: Fri, 4 Sep 2026 17:58:29 +0200 Subject: [PATCH] Checkout ohne actions/checkout Der erste Lauf brach im Runner-Image von Gitea 1.27 ab: die JS-Aktion actions/checkout stirbt beim Aufruf von "git version" mit "read ENOTCONN" - ein Node-24-Fehler im Container, nicht unser Workflow. Der Code wird jetzt per Shell geklont. Das braucht kein Node und ist damit unabhaengig vom Image. Geholt wird flach nach Commit-SHA, ersatzweise nach Branch, falls der Server das Anfordern einzelner SHAs nicht erlaubt. Co-Authored-By: Claude Opus 5 (1M context) --- .gitea/workflows/deploy.yaml | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 03585ec..0594000 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -24,13 +24,23 @@ jobs: DEPLOY_KNOWN_HOSTS: ${{ secrets.DEPLOY_KNOWN_HOSTS }} steps: - - name: Code auschecken - uses: actions/checkout@v4 - - - name: Werkzeuge installieren + # Bewusst kein actions/checkout: die JS-Aktion stirbt im Runner-Image + # von Gitea 1.27 beim Aufruf von git mit "read ENOTCONN" (Node-24-Fehler + # im Container). Ein Klon per Shell umgeht das und braucht kein Node. + - name: Werkzeuge und Code holen + env: + TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | apt-get update -qq - apt-get install -y -qq rsync openssh-client + apt-get install -y -qq git rsync openssh-client curl + + rm -rf quelle && mkdir quelle && cd quelle + git init -q + git remote add origin "https://x-access-token:$TOKEN@${GITHUB_SERVER_URL#https://}/$GITHUB_REPOSITORY.git" + # Nach SHA, falls der Server das nicht erlaubt ersatzweise nach Branch. + git fetch -q --depth 1 origin "$GITHUB_SHA" || git fetch -q --depth 1 origin "$GITHUB_REF_NAME" + git checkout -q FETCH_HEAD + echo "Ausgecheckt: $(git log --oneline -1)" - name: Konfiguration pruefen run: | @@ -63,7 +73,7 @@ jobs: --exclude='.env' --exclude='.env.*' \ --exclude='data/' --exclude='node_modules/' \ -e 'ssh -o BatchMode=yes' \ - ./ "$DEPLOY_USER@$DEPLOY_HOST:$DEPLOY_PATH/" | tee uebertragen.txt + quelle/ "$DEPLOY_USER@$DEPLOY_HOST:$DEPLOY_PATH/" | tee uebertragen.txt - name: Abhaengigkeiten, Neustart und Health-Check run: |