GitHub Actions とは?GitHub に組み込まれた CI/CD を解説
GitHub Actions は GitHub の組み込み自動化プラットフォームです。リポジトリで何かが起きるたびに、YAML で定義された workflow を実行します。
GitHub Actions を使えば、GitHub を離れることなくコードの build、テスト、deploy を自動化できます。何をすべきかを YAML ファイルで記述すると、一致するイベントが発生するたびに、GitHub が runner と呼ばれる仮想マシン上でその作業を実行します。
何であるか
GitHub Actions は、GitHub 内部でホストされる継続的インテグレーションおよび継続的デリバリー(CI/CD)サービスです。別途 CI サーバーを構築する代わりに、workflow ファイルをリポジトリにコミットすると、GitHub がそれらを自動的に実行します。
仕組み
.github/workflows/ の下に YAML ファイルを配置します。各ファイルは、リッスンする 1 つ以上のイベントと、それらが発火したときに実行する job を宣言します。GitHub は runner をプロビジョニングし、コードを checkout し、step を実行して、ステータスを commit または pull request に報告します。
name: CI
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci && npm test中核となる構成要素
- Workflow: イベントと job を結びつける YAML ファイル。
- Job: 1 つの runner 上で実行される step の集合。
- Step: 単一のコマンドまたは action。
- Action: 再利用可能でパッケージ化された作業単位。
なぜ重要か
コードのすぐそばに存在するため、GitHub Actions は自動化をあらゆる pull request のファーストクラスな要素にします。status check、deploy、セキュリティスキャンはコードが変わった瞬間に実行され、維持すべき別のツールなしで高速なフィードバックを提供します。
どこで実行されるか
workflow はデフォルトで GitHub ホストの runner 上で実行されますが、self-hosted またはマネージドの runner 上でも実行できます。Latchkey は、GitHub ホストの runner と同じ workflow を、より安価でインスタンス障害時に自己修復するマネージド runner 上で実行します。
重要なポイント
- GitHub Actions は GitHub ネイティブの CI/CD プラットフォームです。
- workflow はイベントによってトリガーされる
.github/workflows/内の YAML ファイルです。 - モデルはイベントから workflow、job、step へと続きます。