たいきゅんの日記

ITエンジニアの積み上げ日記

GitHubActionsに入門してみた

今回はCI・CDパイプラインのシェアが非常に高いGitHubActionsの入門編です。
未経験転職でもCI・CDパイプラインの構築は今は必須となりつつあり、そのファーストチョイスにもなってきていると思います。
そんなGitHubActionsの基本について今回まとめていこうと思います。

CI・CDとは

CI・CDは(Continuous Integration・Continuous Delivery)、日本語では継続的インティグレーション・継続的デリバリーと訳されます。
継続的インティグレーションは、主にソフトウェア開発の自動化を指します。例えば、テストコードが正常に完了するか毎回手動で確認する場合多くのコストがかかります。これを自動化することで開発者の負担の軽減やヒューマンエラーの回避等が期待できるといった次第です。
継続的デリバリーはアプリケーションの自動デプロイを指します。アプリケーションを高頻度でデプロイすることが求められる現在のアプリケーション開発において継続的デリバリーは欠かせません。例えば「コードをbuildしてECSにデプロイする」作業を手動実行するとこちらも開発者の負担の軽減やヒューマンエラーのリスクがありますが、これをソフトウェアに任せることでリスクを避け、開発者がより開発に時間を割けるようにすることが期待できます。

GitHub Actionsとは

GitHub ActionsはCI・CDパイプライン構築のためのソフトウェアの一種です。
GitHubによって開発されており、publicリポジトリで使用する場合は無料で使用できるのが嬉しい点です。
またドキュメント整備も進められており、日本語表示が自動的にできるのも嬉しい点です。

公式ドキュメント
github.co.jp

GitHub Actionsのメリット

1. ドキュメントの豊富さ&日本語対応
ドキュメント整備が進んでいているのがメリットの一つです。
また日本語対応が標準で、表現も個人的にはAWSのドキュメントより分かりやすいと感じるのもいい点です。
未経験の方・私みたいにまだ経験の浅い人は公式ドキュメントを敬遠しがちなイメージがありますが、公式ドキュメントを読むことが理解するための最短ルートでもあったりします。またそれが難しいため嫌になってしまうことがあるあるかなと思いますがGitHub Actionsのドキュメントは一味違う気がしてます。
是非一度GitHubActionsの公式ドキュメントを読んでみてください。

2. GUI?から簡単に作成できる
自動化と聞くと「コードたくさん書く必要がありそう」「初期学習コストがかかりそう」といったイメージを持つ方も多いと思います。(私もその一人です。)しかしGItHubActionはGitHubのページ上でポチポチするだけでファイルを生成してくれますし、公式ドキュメントに記載されているコードをそのまま貼り付ければ直ぐにCI・CDを試せる気軽さも魅力だなと感じております。

3. Gitとのシナジーが見込める
バージョン管理にGitを使用している企業が非常に多い今、そのGitで一緒にCI・CDもできるのは非常に効率よく感じます!よく使われるGitHubに付随するからこそメンテナンスや新規機能の開発も活発に行われているのも支持される理由の一つではと思います。

学習ロードマップ

1.公式ドキュメントを読む
繰り返しになりますが公式ドキュメントがとてもよくできていて理解する近道だと思いますので、まず公式ドキュメントを読んでGitHubActionsで使われる基礎用語の理解をしてもらえればと思います。

2. 実際に構築してみる
ある程度基礎を読んだら次には構築して動かしてみることをお勧めします。分からなかったらその都度公式ドキュメントを参照して理解を深めて頂きたいです。
私の場合は業務でいきなり作ってからのスタートだったので、トライ&エラーでまず動くものを作ってから用語の理解という流れでしたが、用語をある程度理解してからやったほうが早く深く理解できると思います!!

またCIから始める方が手軽でいいと思います。使用されてる言語・フレームワークでテスト実行コマンドがあると思いますので、それをGitHubActionsで自動実行できるように設定してみてください!
トリガーはご自由ですが、PR作成時が設定されやすいトリガーだとと思いますので参考にしてみてください。

CIができたらCDにも挑戦する流れがベストかと思います。CDを作成するとなると別途クラウドの知識が必要となりますし設定も必要です。
私自身コードビルドを使用してデプロイしたことがないので、今後挑戦できたらと考えております。

まとめ

今回はGitHubActionsの入門について簡単にまとめてみました。
今使えて損ない技術だと思うので是非挑戦してみて欲しいと思いますし、私もGitHubActionsを使って色々トライしたいと考えています。
別途LaravelのUnitTestをGitHubActionsで自動で走らせるハンズオンをまとめてみようと思います!
最後まで読んで頂きありがとうございました!