GitHub Actions Beta (YAML のもの) で実行されたワークフローから GitHub リポジトリにコードをプッシュしようとしています。これは、Git が GitHub で認証する方法を認識できるように、資格情報を含む URL にリモート URL をgit push設定した後に実行するだけで簡単に実行できます。origin
GitHub Actions は、すぐに使用できる PAT: を取得することもGITHUB_TOKENできます。これを使用すると、以前のワークフロー実行に関連付けられていることがわかっている PAT を使用してコミットがリポジトリにプッシュされたときに、別のアクションをスケジュールしないことをシステム全体が十分に認識できます。
これは素晴らしいことですが、カスタム PAT を使用するユースケースがあり (私の場合は GitHub ページをトリガーしてビルドしますが、すぐに使用できる PAT では実行できません)、カスタム PAT を使用すると、GitHub に認識させるという利点が失われます。現在のワークフローからコミットをプッシュした後、別のワークフローを実行しないでください。
その結果、カスタム PAT を使用すると、ワークフローの無限ループに陥ることになります。多くの CI ソリューションはコミット メッセージを尊重***NO_CI***し、この文字列がコミット メッセージに存在する場合、チェック/ビルドなどを実行しません。GitHub Actions Beta は気にしません。
私が思いついた唯一のことは、GitHub Action ワークフローのジョブ/ステップを条件付きにし、次のような条件を構築することです。
- if: !contains(github.commit_message, "***NO_CI***")
ただし、githubコンテキスト オブジェクトにはコミット メッセージを含むフィールドがなく、コンテキストは、Git を使用して SHA からコミット メッセージを取得するコマンドを実行し、その上で を実行できるほど表現力がないようですcontains。
これを達成するためのオプションはありますか?