マスター以外のブランチからGitHubアクションを実行するにはどうすればよいですか?

Aug 19 2020

GitHubにリポジトリがあり、DockerイメージをビルドしてDockerHubにプッシュするアクションを作成したいと思います。私はそれを行う方法を知っていますが、マスター以外のブランチでアクションを作成した場合、GitHubはそれを実行しません。

これは既知の問題です(ワークフローファイルはマスターからのみ取得されますか?)。

それを修正するためのアイデアはありますか?

回答

4 E.Betanzos Aug 25 2020 at 04:23

公式のGitHubActionsドキュメント(ワークフローイベントについて)によると:

ワークフローの実行をトリガーするには、次の手順を実行します。

  1. リポジトリでイベントが発生し、結果のイベントWebhookにコミットSHAとGit参照が関連付けられます。

  2. リポジトリ内の.github / Workflowsディレクトリで、関連するコミットSHAまたはGit参照でワークフローファイルが検索されます。ワークフローファイルは、考慮されるためにそのコミットSHAまたはGit参照に存在する必要があります。

    たとえば、イベントが特定のリポジトリブランチで発生した場合、ワークフローファイルはそのブランチのリポジトリに存在する必要があります。

  3. そのコミットSHAとGitrefのワークフローファイルが検査され、トリガーイベントに一致する値を持つワークフローに対して新しいワークフローの実行がトリガーされます。

    ワークフローは、イベントをトリガーしたのと同じコミットSHAおよびGitrefでリポジトリのコードで実行されます。ワークフローが実行されると、GitHubはランナー環境でGITHUB_SHA(SHAのコミット)およびGITHUB_REF(Git ref)環境変数を設定します。詳細については、「環境変数の使用」を参照してください。

このため、ワークフローをテストするにpushは、作成されたブランチでgitアクション(つまり、do )を実行する必要があります。