ワークフローのトリガー
ご利用のコード リポジトリ内のメイン ブランチに変更を直接プッシュすることは、誰にも許可すべきではありません。 開発が必要な場合は、ブランチ内のコードのコピーに変更を加えるのが理想的です。
一般的な方法としては、機能ブランチを使用します (ブランチを使用して機能を操作します)。 たとえば、データ サイエンス チームはモデルのパフォーマンスを向上させる必要がある場合、ハイパーパラメーター値を試すことで、改善を試みます。 チームは、トレーニング スクリプトでブランチを作成し、ハイパー パラメーター値を更新できます。 そして実験が完了したら、データ サイエンティストは、ブランチをメイン リポジトリにマージするための pull request を作成できます。
ブランチと pull request を使用することで、コードに加えた変更をメイン ブランチにマージする前に、それらを確認することができます。 pull request は、コードの自動品質チェックなど、コードに対して提案された更新に従う必要があるタスクを GitHub Actions で自動化するためのトリガーとして使用することもできます。
機能ベースの開発を自動化と共に使用するには、次のことを行う必要があります。
- メインへのダイレクト プッシュをブロックするブランチ保護規則を作成する。
- コードを更新するブランチを作成する。
- pull request を開くときに、GitHub Actions ワークフローをトリガーする。
ブランチ保護規則を作成する
コードを保護するには、メイン ブランチへのダイレクト プッシュをブロックする必要があります。 ダイレクト プッシュをブロックすると、誰もコードの変更をメイン ブランチに直接プッシュすることはできなくなります。 代わりに、pull request をマージすることで、メイン ブランチに変更を加えることができます。
メイン ブランチを保護するには、GitHub で ブランチ保護規則を有効にします。
- リポジトリ内の [設定] タブに移動します。
- [設定] タブの [コードと自動化] で、[ブランチ] を選択します。
- [規則の追加] を選択します。
- [ブランチ名パターン] の下に「
main
」と入力します。 - [マージ前に pull request を要求する] と [承認を要求する] を有効にします。
- 変更を保存します。
コードを更新するブランチを作成する。
コードを編集する場合は常に、ブランチを作成してそこで作業する必要があります。 最終的に変更を行う場合は、機能ブランチをメイン ブランチとマージする pull request を作成できます。
ヒント
詳細については、機械学習プロジェクトのソース管理と機能ベースの開発の使用に関するページを参照してください。
GitHub Actions ワークフローをトリガーする
最後に、pull request の作成を、GitHub Actions ワークフローのトリガーとして使用できます。 たとえば、誰かがコードに変更を加えるたびに、コード品質チェックを実行する必要があるとします。
編集したコードが品質チェックに合格し、提案された変更を誰かが確認した場合にのみ、pull request を実際にマージします。
GitHub Actions ワークフローをトリガーするには、on: [pull_request]
を使用します。 このトリガーを使用すると、pull request が作成されるたびにワークフローが実行されます。
pull request がマージされるたびにワークフローを実行する場合は、別のトリガーを使用する必要があります。 pull request のマージは、基本的にメイン ブランチへのプッシュです。 そのため、pull request がマージされたときに実行するワークフローをトリガーするには、GitHub Actions ワークフローで次のトリガーを使用します。
on:
push:
branches:
- main