ワークフローのトリガー

完了

ご利用のコード リポジトリ内のメイン ブランチに変更を直接プッシュすることは、誰にも許可すべきではありません。 開発が必要な場合は、ブランチ内のコードのコピーに変更を加えるのが理想的です。

一般的な方法としては、機能ブランチを使用します (ブランチを使用して機能を操作します)。 たとえば、データ サイエンス チームはモデルのパフォーマンスを向上させる必要がある場合、ハイパーパラメーター値を試すことで、改善を試みます。 チームは、トレーニング スクリプトでブランチを作成し、ハイパー パラメーター値を更新できます。 そして実験が完了したら、データ サイエンティストは、ブランチをメイン リポジトリにマージするための pull request を作成できます。

ブランチと pull request を使用することで、コードに加えた変更をメイン ブランチにマージする前に、それらを確認することができます。 pull request は、コードの自動品質チェックなど、コードに対して提案された更新に従う必要があるタスクを GitHub Actions で自動化するためのトリガーとして使用することもできます。

機能ベースの開発を自動化と共に使用するには、次のことを行う必要があります。

  • メインへのダイレクト プッシュをブロックするブランチ保護規則を作成する。
  • コードを更新するブランチを作成する。
  • pull request を開くときに、GitHub Actions ワークフローをトリガーする。

ブランチ保護規則を作成する

コードを保護するには、メイン ブランチへのダイレクト プッシュをブロックする必要があります。 ダイレクト プッシュをブロックすると、誰もコードの変更をメイン ブランチに直接プッシュすることはできなくなります。 代わりに、pull request をマージすることで、メイン ブランチに変更を加えることができます。

メイン ブランチを保護するには、GitHub で ブランチ保護規則を有効にします。

  1. リポジトリ内の [設定] タブに移動します。
  2. [設定] タブの [コードと自動化] で、[ブランチ] を選択します。
  3. [規則の追加] を選択します。
  4. [ブランチ名パターン] の下に「main」と入力します。
  5. [マージ前に pull request を要求する][承認を要求する] を有効にします。
  6. 変更を保存します。

GitHub でブランチ保護規則を構成するスクリーンショット。

コードを更新するブランチを作成する。

コードを編集する場合は常に、ブランチを作成してそこで作業する必要があります。 最終的に変更を行う場合は、機能ブランチをメイン ブランチとマージする 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