GitHub Actions 入門

Machine Learning のための CI/CD

Ravi Bhadauria

Machine Learning Engineer

GitHub Actions とは?

  • GitHub Actions (GHA): パイプラインを自動化する CI/CD プラットフォーム
  • パイプライン: 作業とデータの流れを表すステップ列
Machine Learning のための CI/CD

GitHub Actions とは?

自動車の組立ラインの画像。各工程で作業者がエンジン取り付け、ホイール装着、塗装など特定の作業を行っている。

Machine Learning のための CI/CD

GitHub Actions とは?

GitHub Actions は、リポジトリのチェックアウト、ビルド、テスト、デプロイなどの定義済みアクション(ステップ)を作成する。

1 https://medium.com/empathyco/applying-ci-cd-using-github-actions-for-android-1231e40cc52f
Machine Learning のための CI/CD

GHAの構成要素: イベント

  • イベント: ワークフロー実行をトリガーする、リポジトリ内の特定の活動
    • Push
    • Pull Request
    • Issue の作成
Machine Learning のための CI/CD

GHAの構成要素: ワークフロー

  • ワークフロー: 1つ以上のジョブを実行する自動処理
    • YAML ファイルで定義
    • イベントで自動トリガー
      • 手動実行も可
    • リポジトリの .github/workflows ディレクトリに配置
    • 複数定義可能
Machine Learning のための CI/CD

GHAの構成要素: ステップとアクション

  • ステップ: 個々の作業単位
    • 順に実行。前のステップに依存
    • 同一マシン上で実行し、データ共有可
    • 作業例
      • コンパイル済みアプリ、シェルスクリプト
      • アクション: GHA固有のアプリ
        • 例: リポジトリのチェックアウト、PRへのコメント
Machine Learning のための CI/CD

GHAの構成要素: ジョブとランナー

  • ジョブ: 複数のステップの集合
    • 各ジョブは独立
    • 並列実行が可能
    • ランナーと呼ばれる計算マシンで実行
Machine Learning のための CI/CD

シンプルなGHAワークフロー

リポジトリでの push イベントがワークフローを起動し、Ubuntu ランナー上で1つのジョブが実行される例。ジョブは「リポジトリをチェックアウト」と「Pythonコード実行」の2ステップを含む。

  • イベント: Push
  • ジョブ: Ubuntu ランナー上で実行、2ステップ構成
    • アクション: リポジトリをチェックアウト
    • Pythonコードを実行
Machine Learning のための CI/CD

全体像をつかむ

典型的な GitHub Actions ワークフロー。ジョブは並列、ステップは順次実行の構成図。

Machine Learning のための CI/CD

練習しましょう!

Machine Learning のための CI/CD

Preparing Video For Download...