GitHub Actions を探索する

完了済み

GitHub Actions は継続的インテグレーションと継続的デリバリー (CI/CD) プラットフォームであり、ビルド、テスト、デプロイの各パイプラインを自動化できます。 これにより、コードを自動的にビルド、テスト、および任意のプラットフォームにデプロイするワークフローを作成できます。 GitHub Actions とその開発者の使用方法を見てみましょう。

GitHub Actions のコンポーネント

GitHub Actions ワークフロー を手動で実行することも、リポジトリでイベントが発生したときにトリガーされるように構成することもできます。 たとえば、プル要求は、レビュー プロセスの一部として検証チェックを実行するワークフローをトリガーできます。

ワークフローには、次のコンポーネントが含まれています。

  • ワークフロー: 順次または並列で実行できる 1 つ以上のジョブが含まれます。
  • ジョブ: 定義したスクリプトを実行するか、 アクションを実行する 1 つ以上のステップが含まれます。 ジョブは、独自の仮想マシン ランナー内またはコンテナー内で実行されます。
  • 手順: ワークフローの実行中に実行する特定のタスクを定義します。

各ステップでは、単一のシェル スクリプト、またはワークフローを簡略化できる再利用可能な拡張機能である アクション が実行されます。

ワークフロー

ワークフローは、1 つ以上のジョブを実行する構成可能な自動化プロセスです。 ワークフローは、リポジトリにチェックインされた YAML ファイルによって定義されます。 イベントによってトリガーされた場合、手動で実行された場合、または定義されたスケジュールで実行された場合に実行されます。

ワークフローはリポジトリの .github/workflows ディレクトリで定義され、リポジトリには複数のワークフローを含めることができます。各ワークフローは、それぞれ異なる一連のタスクを実行できます。 たとえば、プル要求をビルドしてテストする 1 つのワークフロー、リリースが作成されるたびにアプリケーションをデプロイするワークフロー、新しい問題を開くたびにラベルを追加するワークフローを用意できます。

イベント

イベントは、ワークフロー実行をトリガーするリポジトリ内の特定のアクティビティです。 たとえば、誰かが pull request を作成したり、問題を開いたり、リポジトリにコミットをプッシュしたりすると、アクティビティは GitHub から発生します。 REST API に投稿するか、手動でワークフローをトリガーして、スケジュールに従って実行することもできます。

仕事

ジョブは、ランナーで実行されるワークフロー内の一連のステップです。 各ステップは、実行されるシェル スクリプトか、実行されるアクションのいずれかです。 ステップは順番に実行され、相互に依存します。 各ステップは同じランナーで実行されるため、あるステップから別のステップにデータを共有できます。 たとえば、アプリケーションをビルドする手順の後に、ビルドされたアプリケーションをテストする手順を実行できます。

ジョブの依存関係を他のジョブと共に構成できます。既定では、ジョブには依存関係がなく、相互に並列で実行されます。 ジョブが別のジョブに依存する場合は、依存ジョブが完了するまで待機してから実行します。 たとえば、依存関係のないアーキテクチャごとに複数のビルド ジョブがあり、それらのジョブに依存するパッケージ 化ジョブがあるとします。 ビルド ジョブは並列で実行され、正常に実行されると、パッケージ 化ジョブが開始されます。

アクション

アクションは、複雑だが頻繁に繰り返されるタスクを実行する GitHub Actions プラットフォーム用のカスタム アプリケーションです。 アクションを使用すると、ワークフロー ファイルに記述する繰り返しコードの量を減らすことができます。 アクションでは、GitHub から Git リポジトリをプルしたり、ビルド環境に適したツールチェーンを設定したり、クラウド プロバイダーに認証を設定したりできます。

独自のアクションを記述することも、 GitHub Marketplace のワークフローで使用するアクションを見つけることもできます。

ランナー

ランナーは、ワークフローがトリガーされたときに実行されるサーバーです。 各ランナーは、一度に 1 つのジョブを実行できます。 GitHub には、ワークフローを実行するための Ubuntu Linux、Microsoft Windows、macOS ランナーが用意されています。各ワークフロー実行は、新しくプロビジョニングされた新しい仮想マシンで実行されます。 GitHub には 、より大きな構成で使用できるより大きなランナーも用意されています。

別のオペレーティング システムが必要な場合や、特定のハードウェア構成が必要な場合は、 独自のランナーをホストできます。

GitHub Actions のコンポーネントを理解したら、ワークフロー ファイルを調べてみましょう。