マスター以外のブランチからGitHubアクションを実行するにはどうすればよいですか?
GitHubにリポジトリがあり、DockerイメージをビルドしてDockerHubにプッシュするアクションを作成したいと思います。私はそれを行う方法を知っていますが、マスター以外のブランチでアクションを作成した場合、GitHubはそれを実行しません。
これは既知の問題です(ワークフローファイルはマスターからのみ取得されますか?)。
それを修正するためのアイデアはありますか?
回答
公式のGitHubActionsドキュメント(ワークフローイベントについて)によると:
ワークフローの実行をトリガーするには、次の手順を実行します。
リポジトリでイベントが発生し、結果のイベントWebhookにコミットSHAとGit参照が関連付けられます。
リポジトリ内の.github / Workflowsディレクトリで、関連するコミットSHAまたはGit参照でワークフローファイルが検索されます。ワークフローファイルは、考慮されるためにそのコミットSHAまたはGit参照に存在する必要があります。
たとえば、イベントが特定のリポジトリブランチで発生した場合、ワークフローファイルはそのブランチのリポジトリに存在する必要があります。そのコミットSHAとGitrefのワークフローファイルが検査され、トリガーイベントに一致する値を持つワークフローに対して新しいワークフローの実行がトリガーされます。
ワークフローは、イベントをトリガーしたのと同じコミットSHAおよびGitrefでリポジトリのコードで実行されます。ワークフローが実行されると、GitHubはランナー環境でGITHUB_SHA(SHAのコミット)およびGITHUB_REF(Git ref)環境変数を設定します。詳細については、「環境変数の使用」を参照してください。
このため、ワークフローをテストするにpush
は、作成されたブランチでgitアクション(つまり、do )を実行する必要があります。