本文へスキップ

GitHub Actionsとは?CI/CDを自動化する仕組みを未経験向けに解説

#GitHub Actions#CI/CD#未経験#インフラ学習#自動化

求人票や学習ロードマップで「GitHub Actions」という言葉を見かけても、未経験のうちはGitHubの付属機能なのか、Jenkinsのような別物なのか、イメージが掴みにくいかもしれません。結論から言うと、GitHub Actionsとは、GitHubへのpushやプルリクエストをきっかけに、テストやデプロイといった作業を自動で実行してくれるGitHub公式のCI/CDツールです。この記事では、GitHub Actionsが何をしてくれる仕組みなのか、設定ファイルの基本構造、現場でどう使われているかを未経験向けに解説します。

GitHub Actionsとは何か

GitHub Actionsは、GitHub上のリポジトリに変更が入ったことをきっかけに、決められた処理を自動で実行してくれる仕組みです。CI/CDとは?で解説したように、CI/CDはコードの変更を自動でテストし、問題が無ければ自動で本番環境まで反映する考え方全体を指しますが、GitHub ActionsはそのCI/CDを実現するための実行環境のひとつだと捉えると位置づけが分かりやすくなります。

別途サーバーを用意したりJenkinsのような専用ツールを導入したりしなくても、GitHubのリポジトリに設定ファイルを1つ置くだけで自動実行の仕組みを組めるのが大きな特徴で、GitHubを使っているチームであれば追加の準備が少なく始めやすい選択肢になっています。

ワークフローファイルの基本構造

GitHub Actionsの処理内容は、リポジトリ内の.github/workflows/フォルダに置くYAML形式のファイル(ワークフローファイル)で定義します。構造はおおむね次の3つの要素で成り立っています。

  1. on: どんな出来事をきっかけに実行するか(push、プルリクエストの作成など)
  2. jobs: 実行する処理のまとまり。テスト用・デプロイ用のように複数定義できる
  3. steps: 各jobの中で順番に実行する具体的な作業(依存のインストール、テストの実行など)

「何をきっかけに」「何を」「どの順番で」実行するかをYAMLで書いておくだけで、あとは自動で動いてくれるのがGitHub Actionsの基本的な仕組みです。実行された内容は、GitHub上の画面からログとして確認できるため、失敗したときもどのstepでエラーが起きたのかを追いやすくなっています。

pushをきっかけにon・jobs・stepsの順で処理が実行される様子を表した図

よく使われるトリガーと処理

GitHub Actionsを動かすきっかけ(トリガー)には、いくつかの代表的なパターンがあります。

トリガー動くタイミングよくある用途
push指定したブランチに変更が送られたときテストの自動実行、ビルドの確認
pull_requestプルリクエストが作成・更新されたときコードレビュー前の自動チェック
schedule決めた時刻になったとき(cron形式で指定)定期的な処理の実行、夜間のバッチ処理

Gitとは?で解説した変更履歴の記録(コミット)を起点に、何らかの処理を自動で始められる点がGitHub Actionsの強みです。手作業で「変更をpushしたらテストを実行する」ことを忘れてしまう、といった人為的なミスを減らせます。

現場でどこまで関わるか

未経験から現場に入ってすぐにワークフローファイルを自分で設計する機会は多くありませんが、関わる場面自体は早い段階からあります。インフラエンジニアとは?で触れた監視運用の仕事でも、デプロイの自動処理が正常に終わったかをGitHub Actionsのログで確認する場面は少なくありません。

  • ログの確認: ワークフローが失敗したとき、どのstepでエラーが起きたかをGitHub上の画面から確認する場面
  • 既存ファイルの小さな修正: 既にあるワークフローファイルに、1つのstepを追加・修正する場面
  • 実行結果の見方の理解: プルリクエストに表示される自動テストの成功・失敗マークの意味を理解しておく場面

現役でインフラの現場にいる立場から言うと、未経験のうちにワークフローをゼロから書けることよりも重視されるのは、「このマークが赤いのは、どこかのstepで処理が失敗したサイン」だと見て判断できることです。この感覚があるだけで、プルリクエストのやり取りにも落ち着いて参加できるようになります。

InfraDojoで学ぶ

InfraDojoでは、ブラウザ上の演習環境でLinuxやGitの基礎を手を動かしながら学べるため、GitHub Actionsの前提になる「コマンドライン操作」や「変更履歴の考え方」を一つずつ積み上げていけます。何から学び始めればいいか迷う場合は、ロードマップで全体の学習順を確認しておくと、GitHub Actionsのようなツールに触れるタイミングも判断しやすくなります。

よくある質問

Q. GitHub ActionsとJenkinsはどう違いますか?

どちらもCI/CDを実現するためのツールですが、GitHub ActionsはGitHubに最初から組み込まれており、追加のサーバーを用意しなくても設定ファイルを置くだけで使い始められます。Jenkinsは専用のサーバーを自分で構築・運用する必要がある分、より細かく自由に設定できる傾向があります。

Q. 未経験のうちからワークフローファイルを書けるようにしておくべきですか?

必須ではありません。まずはLinuxの基本操作やGitの仕組みを理解し、GitHub Actionsの実行結果(成功・失敗のログ)を正しく読めるようになることを優先するほうが、結果的に理解が早くなります。

Q. GitHub Actionsは無料で使えますか?

利用には一定の無料枠があり、個人や小規模な使い方であれば範囲内で収まることが多いですが、実行時間や利用規模によっては料金が発生します。詳しい条件は最新の公式情報で確認するのが確実です。

Reo|インフラエンジニアのアイコン

この記事を書いた人: InfraDojo運営者(Reo|インフラエンジニア)

現役インフラエンジニア。SESの現場経験に基づき、未経験からのインフラ転職と学習を支援しています。InfraDojoは、ブラウザ上のターミナルで実際に手を動かして学べるインフラ学習サイトです。

@Reo_engineer_

読むだけで終わらせず、今日から手を動かす

InfraDojoは、ブラウザを開くだけでLinux・ネットワーク・AWSの演習ができる学習サイトです。登録は30秒、最初のコースは無料です。