ソフトウェア開発を効率的に進めるために必要なCI/CDツール。どんどん新しいツールが増えてきており、選択肢がたくさんあってどのツールを選ぶべきか迷ってしまいますよね。今回は、GitHubが提供している、ワークフローの自動化サービスであるGitHub Actionsをご紹介します。GitHub Actionsが選ばれる理由や導入する際に知っておくべき用語、そして料金体系まで解説していきます。CI/CDツールの導入を検討しているという方は、ぜひご参考ください!
目次
1. GitHub Actionsとは?開発の経緯と主な特徴
GitHub Actionsは、DevOpsやアジャイル開発を実現するために必要なCI/CDを実行できるサービスです。そもそもCI/CDとは何なのでしょうか?
そもそもCI/CDとは?
CI/CDとはソフトウェア開発におけるビルド・テスト・デプロイといった作業を、自動化することによって効率化させる手法です。継続的インテグレーション(Continuous Integration)と継続的デリバリー/デプロイメント(Continous Delivery / Continous Deployment)という2つの要素が組み合わさってできた言葉です。
- 継続的インテグレーション(CI):開発者が頻繁にコードを共有リポジトリにマージし、自動的にビルドとテストを行うプロセスです。早期にバグを発見し、コードの品質を維持することができるようになります。
- 継続的デリバリー/デプロイメント(CD):CIの後に続くプロセスで、検証済みのコードを自動的にリポジトリにリリースし、さらに本番環境へのデプロイを自動化すること。新機能や改善を迅速にユーザーに提供することが可能になります。
このようにCI/CDは、自動化によって人的エラーを防ぎ、プロセスを効率化させるというメリットがあります。さらに、製品やサービスを迅速にユーザーに提供していくことや、開発・運用チーム全体の生産性向上にもつながります。
▼CI/CDをもっと詳しく知りたい方はこちら
CI/CDとは?CI/CDツールを選ぶポイント7選&ツール比較! | in-Pocket インポケット
GitHub ActionsはCI/CDにおけるビルド・テスト・デプロイといった要素を自動化できるツールです。他のツールに比べると比較的新しいサービスなのですが、どのような経緯で登場し、どういった特徴を持っているのでしょうか?詳しく見ていきましょう。
GitHub Actionsが登場した背景
GitHub Actionsは、ソースコードの管理機能を持ち、世界最大の開発者プラットフォームとしても知られているGitHubが提供しているサービスで、2019年11月に一般提供が開始されました。
▼GitHubをもっと詳しく知りたい方はこちら
GitHubとは?選ばれる理由と知っておくべき用語、導入方法を解説 | in-Pocket インポケット
GitHub Actionsを利用すると、GitHubにおける様々なイベントをトリガーとして、ワークフローを自動で実行することができます。GitHub Actionsの登場以前は、CI/CDを実現するためには外部サービスと連携する必要がありましたが、GitHub Actionsによってコードリポジトリと同じプラットフォーム上でCI/CDパイプラインを構築できるようになりました。
つまり、外部サービスとの認証や連携設定をせずに、GitHub内でビルド・テスト・デプロイの自動化を実行することができるようになったということです。
GitHub Actionsは2018年に初めて公開され、当初は利用申請をした一部のユーザーのみが利用できる限定的な機能でした。その後、選ばれたユーザーからのフィードバックを基に機能の改善と拡張が行われました。GitHubは2018年にMicrosoftの傘下となり、積極的に機能追加やエコシステムの拡大を図るフェーズに入ったことも影響して、2019年11月に晴れてGitHub Actionsは正式な一般公開に至ったという経緯があります。現在は、GitHubを利用するすべてのユーザーが、特別な申請や手続きなしにGitHub Actionsを利用することができます。
GitHub Actionsの主な特徴
GitHub Actionsの最大の特徴は、GitHub公式のサービスであることを活かしたGitHubプラットフォームとのシームレスな連携にあります。そのため、GitHub Actionsは他のCI/CDツールと比較して、GitHubユーザーにとってより使いやすく、効率的なソリューションとなっています。具体的にどのような特徴があるかまとめていきます。
GitHubイベントとの連携
GitHubの様々なイベントをトリガーとしてワークフローを実行することが可能です。GitHub Actionsはワークフローを自動化できるサービスなので、CI/CDに直接関わらないワークフローの自動化も対応可能です。例えば、イシュー管理やドキュメント生成、Slackやメールへの自動通知など、リポジトリやプロジェクト管理に関連するほぼすべての作業を自動化することができます。
・プッシュ、プルリクエスト、イシューの作成など、GitHubの操作に直接連動
・リポジトリ内の変更を即座に検知し、自動的にワークフローを開始
GitHub環境の活用
GitHubが提供する実行環境をそのまま利用することができます。一貫性のある環境で全てのテストやビルドを実行できるため、「自分の環境では動くのに」といった問題を軽減することができます。GitHub Actionsは様々なOSを使って作業することができます。OS(オペレーティングシステム)とはコンピュータやスマートフォンなどのデバイスを動かすためのソフトウェアで、ハードウェアとアプリケーションをつなぐ役割を果たします。
・複数のOS(Linux、Windows、macOS)の仮想環境が無料で利用可能
・GitHubが管理するため、環境のセットアップや保守の手間が不要
GitHub Marketplaceの活用
GitHub Actionsにおいて、ワークフロー内で使用できる事前に定義された機能のパッケージを「アクション」と呼んでいます。一度作成したアクションは、異なるプロジェクトや複数のワークフローで何度でも使用可能です。GitHub Marketplaceというプラットフォームを通じて、豊富なアクションにアクセスすることができます。
・コミュニティによって開発・メンテナンスされるアクションを簡単に利用可能
・一般的なタスクの実装を大幅に簡素化
セキュリティの向上
CI/CDプロセスのセキュリティを強化するために、GitHubの既存のセキュリティ機能と緊密に統合されています。これにより、開発者はセキュリティリスクを最小限に抑えながら、効率的なCI/CDパイプラインを構築できます。
・コードへのアクセス権限とワークフローの実行権限を統合して管理(不正アクセスのリスク低減)
・GitHubのシークレット管理機能を利用し、APIキーやパスワードなどの機密情報を安全に管理することが可能
続いて、GitHub Actionsを導入する際に知っておくべき用語を解説していきます。
2. GitHub Actionsについて知っておくべき用語
GitHub Actionsを使い、ワークフローを作成していく上で、知っておくべき基本的な概念や用語を分かりやすく説明していきます。
参考:GitHub Docsより
イベント (Event)
何が起こったかを示すもの。たとえば、コードが変更されたり、新しいリクエストが作成されたりすることです。イベントが発生すると、自動的に作業が始まります。
ワークフロー (Workflow)
一連の作業をまとめたもの。たとえば、コードをテストしたり、アプリをデプロイしたりするための手順を含みます。YAMLという特別な形式で書かれ、プロジェクトの特定の場所に保存されます。
ジョブ (Job)
ワークフローの中の個別の作業。たとえば、テストを実行する作業や、アプリをビルドする作業です。複数のジョブを同時に実行することもできます(並列実行といいます)。
ステップ (Step)
ジョブの中で実行される具体的な作業やタスク。特定のコマンドを入力してプログラムを実行したり、外部のツールやアクションを利用して特定の処理を行ったりします。各ステップは、順番に実行され、ジョブ全体の流れを構成します。
アクション (Action)
より複雑な作業を簡単にするための、事前に定義された機能のパッケージ。たとえば、特定のテストを実行するアクションを使うことで、手間を省くことができます。他の開発者が作ったアクションを使ったり、自分でアクションを作ったりすることも可能です。
ランナー (Runner)
ワークフローを実行するための作業環境。仮想マシンやコンテナと呼ばれる特別なコンピュータのようなものです。GitHubが提供するランナーとユーザー自身が自社のサーバーやクラウド上に構築することができるセルフホステッドランナーがあります。
上記は簡単な説明になるので、それぞれの用語を理解するためには、簡単なワークフローを作成してみるのがおすすめです。GitHub Actionsは無料で利用することもできるので、ぜひ試してみてください。
3. GitHub Actionsの料金体系
GitHub Actionsはパブリックリポジトリであれば無料で無制限に使用できるなど、他のCI/CDツールに比べてコスパのいいツールと言われています。GitHub Actionsの料金体系について簡単にまとめてみました。(あくまで簡単なまとめなので、詳細を知りたい方は公式サイトをご確認いただくことをおすすめします。)
無料プラン
・パブリックリポジトリ:無料で無制限に使用可能
・プライベートリポジトリ:月2,000分まで無料、ストレージ500MB
有料プラン
(※2024/8/30現在のレートである1ドル=145円の計算で、おおよその日本円を割り出しています。)
・GitHub Pro:月3,000分、ストレージ1GB、$7(1,015円)/ユーザー/月
・GitHub Team:月2,000分、ストレージ2GB、$44(6,380円)/ユーザー/月
・GitHub Enterprise Cloud:月50,000分、ストレージ50GB、$231(33,495円)/ユーザー/月
参考:GitHub Docsより
追加使用料金
無料枠を超えた場合、OS別に以下の料金が適用されます。
・Linux:$0.008/分
・Windows:$0.016/分
・macOS:$0.08/分
また、ストレージに関しては無料枠を超えた場合、使用量に応じて課金されます。
料金計算
・分単位の使用量と1か月のストレージ使用量に基づいて計算
・GitHub提供の料金計算機で見積もり可能
様々な料金体系が用意されているため、小規模なプロジェクトから大規模な企業まで、ニーズに合わせて柔軟にGitHub Actionsを利用することができます。
4. さいごに
最後までお読みいただきありがとうございます。今回はGitHubユーザーであれば選んで損はない、そしてコスパもいい、GitHub Actionsをご紹介させていただきました。現在GitHubを利用されている方は、ツール選定の参考に無料プランでまずは試してみてはいかがでしょうか?
アイスリーデザインではソフトウェア開発におけるツールの導入支援をおこなっております。豊富な経験と専門知識を活かし、お客様のニーズに最適なツール選定から導入、運用までをトータルでサポートいたします。さらに、効率的な開発体制の構築と、チームの生産性の向上を実現します。GitHub Actionsの導入支援サービスについて詳しく知りたい方は、こちらをご覧ください。