カスタム検証でHEADが分離されたため、AEM Cloud Managerのビルドに失敗しました

✨ このコンテンツはAIが生成したもので、不正確である可能性があります。 生成AI用語

この記事では、リポジトリがヘッドヘッドステートに分離されているため、カスタム検証ステップが失敗した場合に、Adobe Experience Manager Cloud Manager パイプラインでビルドエラーに対処する方法について説明します。

説明 description

環境

  • Adobe Experience Manager(AEM)as a Cloud Service(すべてのバージョン)

症状

Cloud Manager パイプラインのビルドは、モジュールのカスタム検証ステップで失敗します。 このエラーは、カスタム検証が現在のGit ブランチを判断しようとしたが、リポジトリが分離されたHEAD状態にあり、これはCloud Manager ビルドで標準です。

ビルドログに次のエラーが表示されます。

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

ビルドログには、浅いチェックアウトと切り離されたHEAD状態を示すコマンドも表示されます。

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

この問題は、カスタム検証でブランチ情報とGit履歴が想定される場合に、Cloud Managerで実行されるすべてのパイプラインで発生します。

原因

カスタム検証ステップは、Cloud Managerの浅い分離されたHEAD チェックアウトでは利用できないGit ブランチ情報と履歴を想定しているため、失敗します。

解決策 resolution

問題を解決するには、次の手順に従います。

  1. カスタム検証ロジックを変更して、CM_BUILD=true環境変数を確認することで、Cloud Managerで実行されているタイミングを検出します。
  2. CM_BUILD=trueが設定されている場合、ブランチ情報またはGit履歴を必要とする検証ロジックをスキップします。
  3. または、デタッチされたHEAD ステートを適切に処理し、ブランチ情報が利用できないときにビルドを失敗せずに終了するように検証を更新します。
  4. CM_BUILD=trueが設定されたビルドをローカルでテストして、カスタム検証がスキップされるか、正しく処理されることを確認します。
  5. 更新された検証ロジックをリポジトリにコミットし、変更をプッシュします。
  6. Cloud Managerで新しいパイプライン実行をトリガーします。
  7. ビルドがカスタム検証ステップを通過することを確認します。
recommendation-more-help
experience-cloud-kcs-help-kbarticles