【初心者向け】GitHub Actionsの概要や実例 パート1
2024.5.17
今年の2月に未経験で中途入社した、松尾です。
私は、現在フロントエンドに関わる部署で運用保守業務に携わっています。
業務でデプロイ作業を行う際にGitHub Actionsを使用することがあり、
中の動きについて気になったため今回詳しく調べてみました。
パート1とパート2に分けて、ご紹介していきたいと思います。
パート1の今回は、概要や導入上の注意についてお話いたします。
目次
GitHub Actionsとは?
概要
GitHub Actionsとは、あらかじめ定義していたワークフローを自動で実行してくれるGitHubの機能の一つです。GitHub Actionを使用することで、CI/CD関連のワークフローの自動化が可能となります。
用語説明
GitHub Actionsを学ぶうえで押さえておきたい用語をいくつか紹介します。
●CI(Continuous Integration)
開発者が自分のコード変更に対して、自動化されたワークフローでビルド・テストを行うことをCIと言います。
自動化することで効率化を図り、早いサイクルでバグの発見・修正を素早くすることができます。
●CD(Continuous Delivery)
CIを拡張した手法で、リリースプロセス全体まで自動化することをCDといいます。
●ランナー
ワークフローを実行するサーバのことを言います。GitHubでは、ワークフローを実行するために、Ubuntu Linux、Microsoft Windows、macOS ランナーが提供されます。
●ジョブ
同じランナーで実行される、ワークフローの内の一連のステップのことをジョブといいます。
●ワークフロー
自動化するタスクの実行単位のことをいい、1 つ以上のジョブを実行する構成可能な処理のことワークフローといいます。
●イベント
ワークフローを実行させるトリガーのことをイベントといいます。どのような操作がGitHub上で行われたらワークフローを開始するかを指定することができます。
●アクション
複雑かつ頻繁に行う処理を、1行で書けるようにしたものです。アクションは、既にGitHubが用意してくれているものだけでなく、自分で作ったり、GitHub Marketplaceから買うこともできたりします。
●ステップ
実行される1つ1つのシェルスクリプト、アクションのことを指します。ステップは書いている順番で実行されて、相互に依存するため実行手順を考えないといけません。
導入上の注意点
料金体系
GitHub Actionsについて調べている中で、特に注意が必要だと感じたのは料金体系です。
基本的な料金は以下の通りです。
上記の料金はプライベートレポジトリで使用した際に発生します。
いくつか注意が必要な“ルール”があるので確認していきたいと思います。
時間に関する注意点
前提知識として、「分」はジョブの実行時間で算出されます。
では、1つのワークフローに1秒で処理が終わるジョブを50回実行したとすると、
1秒を50回なので50秒≒1分で換算されるのでしょうか。
実際は、ジョブ単位ごとに切り上げをされてしまうため
1分未満のジョブ50回でも1分×50回で50分の計算になってしまいます。
更に、使用するOSによっても分コストの倍率が変化するためこちらも注意が必要です。
macでは、10倍のコストがかかるためmacOSでのGitHub Actions使用には注意が必要です。
定期的にスクリーニングを実施し、不要なジョブはコメントアウトするなどの工夫を行わなければ、
本来必要なジョブが実行されないということも起こり得ます。
利用上限に達した場合は、従量課金となります。無制限か上限を設けるかを選択できますが、
その際には以下のGitHubの料金計算ツールを活用することで簡単に計算ができます。
GitHub Pricing calculator
ストレージに関する注意点
ストレージとは、artifacts(成果物として保存されたワークフロー)とGitHub Packages*の消費の合計のことを差します。
時間は月毎にリセットされますが、ストレージは成果物を削除しない限り減ることはありません。
また、ストレージコストはアカウントで所有するすべてのリポジトリの合計使用量となる点も注意が必要です。
時間と同様、不必要な成果物はこまめに削除するなどしてストレージ管理を行っていくことが必要になります。
*コンテナや依存関係を含むソフトウェアパッケージをホスティングするためのプラットフォームサービス
おわりに
GitHub上でのCI/CD自動化において必要不可欠なツールのGitHub Actionsですが、
導入方法や使用方法を事前にしっかりと理解をしておかないと
ジョブが実行されないなどのエラーが発生する可能性があることを学びました。
コードと同様に、本当に必要な処理かどうか、またより効率的な方法はないかなど、
定期的にスクリーニングを通じて管理していくことが重要だと思いました。
パブリックリポジトリでの使用に関しては料金が発生しないので、
練習や学習のために積極的に活用していきたいと思います。
次回の記事パート2では、簡単な実践を通じてGitHub Actionsの具体的な使用方法について紹介していきたいと思います。
参考文献
GitHub Docs, GitHub Actionsを理解する
GitHub Docs, GitHub Actionsの課金について
システム開発・保守、導入支援など、
お気軽にご相談ください