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:
- Ändern Sie die benutzerdefinierte Validierungslogik, um zu erkennen, wann sie in Cloud Manager ausgeführt wird, indem Sie nach der
CM_BUILD=trueUmgebungsvariablen suchen. - Wenn
CM_BUILD=truefestgelegt ist, überspringen Sie die Validierungslogik, die Verzweigungsinformationen oder einen Git-Verlauf erfordert. - 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.
- Testen Sie den Build lokal, wobei
CM_BUILD=truefestgelegt ist, um zu bestätigen, dass die benutzerdefinierte Validierung übersprungen oder korrekt verarbeitet wird. - Übertragen Sie die aktualisierte Validierungslogik in das Repository und übertragen Sie die Änderungen.
- Trigger einer neuen Pipeline-Ausführung in Cloud Manager.
- Stellen Sie sicher, dass der Build den benutzerdefinierten Validierungsschritt erfolgreich durchläuft.