AEM Cloud Manager-Build-Fehler aufgrund von losgelöstem HEAD bei benutzerdefinierter Validierung

✨ Dieser Inhalt wird von KI generiert und könnte ungenau sein. Generative KI-Begriffe

In diesem Artikel wird beschrieben, wie Sie Build-Fehler in Adobe Experience Manager Cloud Manager-Pipelines beheben können, wenn benutzerdefinierte Validierungsschritte fehlschlagen, da sich das Repository in einem getrennten HEAD-Status befindet.

Beschreibung description

Umgebung

  • Adobe Experience Manager (AEM) as a Cloud Service (alle Versionen)

Symptome

Ein Cloud Manager-Pipeline-Build schlägt während eines benutzerdefinierten Validierungsschritts in einem -Modul fehl. Der Fehler tritt auf, wenn die benutzerdefinierte Validierung versucht, die aktuelle Git-Verzweigung zu ermitteln, sich das Repository jedoch in einem separaten HEAD-Status befindet, der in Cloud Manager-Builds standardmäßig ist.

Der folgende Fehler wird in den Build-Protokollen angezeigt:

java.lang.IllegalStateException: Unable to determine current Git branch. Repository is in detached HEAD state.

Das Build-Protokoll zeigt auch Befehle an, die ein flaches Auschecken und einen getrennten HEAD-Status angeben:

git fetch --depth 1 origin <commit-hash>
git checkout FETCH_HEAD
You are in 'detached HEAD' state.

Dieses Problem tritt bei jeder Pipeline auf, die in Cloud Manager ausgeführt wird, wenn die benutzerdefinierte Validierung Verzweigungsinformationen und einen Git-Verlauf erwartet.

Ursache

Der benutzerdefinierte Validierungsschritt schlägt fehl, da er Git-Verzweigungsinformationen und -Verlaufsdaten erwartet, die in den flachen, separaten HEAD-Checkouts von Cloud Manager nicht verfügbar sind.

Lösung resolution

Gehen Sie wie folgt vor, um das Problem zu beheben:

  1. Ändern Sie die benutzerdefinierte Validierungslogik, um zu erkennen, wann sie in Cloud Manager ausgeführt wird, indem Sie nach der CM_BUILD=true Umgebungsvariablen suchen.
  2. Wenn CM_BUILD=true festgelegt ist, überspringen Sie die Validierungslogik, die Verzweigungsinformationen oder einen Git-Verlauf erfordert.
  3. Alternativ können Sie die Validierung aktualisieren, um den Status „losgelöste HEAD“ kontrolliert zu verarbeiten und den Build zu beenden, ohne dass der Build fehlschlägt, wenn keine Verzweigungsinformationen verfügbar sind.
  4. Testen Sie den Build lokal, wobei CM_BUILD=true festgelegt ist, um zu bestätigen, dass die benutzerdefinierte Validierung übersprungen oder korrekt verarbeitet wird.
  5. Übertragen Sie die aktualisierte Validierungslogik in das Repository und übertragen Sie die Änderungen.
  6. Trigger einer neuen Pipeline-Ausführung in Cloud Manager.
  7. Stellen Sie sicher, dass der Build den benutzerdefinierten Validierungsschritt erfolgreich durchläuft.
recommendation-more-help
experience-cloud-kcs-help-kbarticles