GitHubがCI/CDソリューションを発表。GitHub Actionsによる実装
ソースコードリポジトリーサービスのデファクトスタンダードと言っても良いGitHub。その日本法人であるギットハブ・ジャパン合同会社が、GitHub上で実装されたCI/CDソリューションGitHub Actionsに関する説明会を実施した。GitHub Actionsは、2018年のGitHub Universeで発表されたGitHubのワークフローを実装するための仕組みだ。
GitHub Actionsは発表の当初から「ワークフロー」というキーワードから連想される「CI/CD」領域への応用が噂されていたと言える。筆者は2018年11月に開催されたGitHub Universeにおいて、製品担当のVPに「GitHub ActionsはCI/CDツールになるのか?」という質問を行っていた。これに対しての回答は「YesでもありNoでもある」というものであった。
そもそもGitHub社内では「Scripted GitHub」と呼ばれていたように、GitHub ActionsはGitHub上の操作を自動化するという発想の機能であり、その記述にもHCL(HashiCorp Configuration Language、VagrantやTerraForm、Consulなどを開発するサンフランシスコのベンチャー企業であるHashiCorpが開発したソフトウェアの構成を記述する言語)を採用していることが特徴であった。ベータでありながらもMicrosoftなどが様々なActionsを公開しており、認知が拡がっていることがわかる。
今回のCI/CDの発表にあわせたものと思われるが、このActionsの記述言語は、HCLに変えて、より多くのソフトウェアで利用されているYAMLへと変更された。ここでもまだベータとして開発途上であることがわかる。GitHub Actionsは、11月に行われるGitHub Universeで正式にGA版として公開されることが予定されている。しかしそれまではベータという状態で、今後も機能追加や修正などが行われていくだろう。
参考:GitHub Universeで製品担当VPが語ったGitHub Actionsのインパクト
以下、記者説明会からのスライドを紹介しながらプレゼンテーションを追っていこう。
最初に説明されたのは、ここ最近のGitHubの買収や新しいトピックに関する内容で、100以上の機能追加や改善が行われているという。特にPackage Registryはソースコード以外のバイナリーやライブラリーなどを格納するリポジトリ/レジストリで、CI/CDを実装する上では必要であったということだろう。またDependabotは、ライブラリーの依存関係を認識し、上流のソースコードが必要とするライブラリーに脆弱性防止のパッチなどの更新があった場合、GitHubにプルリクエストを送るという機能だ。
このスライドの中で紹介されている新機能のいくつかは、8月に実施された説明会でも解説されているので参照されたい。
参考:GitHub、ベルリンで発表した新機能などを解説するメディア説明会を開催
GitHubを使うデベロッパーは順調に増加しており、すでに4000万人を超えたと言う。8月の説明会では3600万人と紹介されていたので、この1ヶ月で400万人増えたということになる。
そして今回の主なトピック、CI/CDについて紹介を行った。
GitHub Actionsの主な特徴は、「GitHubに統合されていること」「イベントへのフック」「多くのプラットフォームや開発言語に対応」というところだろう。
より詳しくは次のスライドで紹介されているようにLinux、Mac、Windowsそしてコンテナをサポート、複数のプラットフォーム及び複数バージョンのビルドを行うマトリックスビルドのサポート、ログのストリーミング、及び検索機能、YAMLで記述するワークフロー、ということであろう。
生成されたビルド、通常は「Artifact」と呼ばれるパッケージはGitHub Package Registryに保存され、CI/CDに利用される。ちなみにPackage Registryはクラウドベースのみとなっており、オンプレミス側に実装することはまだできないという。これはGithubのオンプレミス版であるGitHub Enterpriseの対応とも同期を取るようで、オンプレミスだけでCI/CDを実装するためには11月の正式版を待つ必要があるということだろう。
またグラフィカルなUIでパイプラインを実装するのが最近のモダンなCI/CDツールの定番だが、今回のCI/CDにはビジュアルなパイプライン機能は実装されていないという。ワークフローはリスト形式で表現されるのが、現行のベータ版の機能ということだろう。
またCI/CDを利用する場合の価格も発表された。これはFreeアカウントの場合、月に2000分、つまり33時間20分が無料で利用でき、それ以降の追加利用時間についてはプラットフォームにより異なる金額が課金されるという。一ヶ月を20日とすれば、無料枠は一日につき1.6時間ということになる。これが多いか少ないかは、デベロッパーが必要とするビルド~テストの処理時間との兼ね合いとなるだろう。
さらに、オンプレミスサーバーでのCI/CD実行については無料という扱いになることが発表された。
総合的に判断すれば、GitHub Actionsが発表された時から予想された機能追加と言えるだろう。多くのツールがひしめくCI/CDの領域で、ソースコードリポジトリーを持つGitHubが選択されるためには、コスト面の優位性だけではなく脆弱性のスキャンなどのセキュリティ機能の強化も必要だろう。
しかし何よりも大切なのは、デベロッパーが快適にCI/CDを実施できる体験を提供できるかどうかであろう。GitHubの基本機能との統合を強調したのは、そのためだろう。11月の正式版発表が楽しみである。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- GitHub Universe開催。ワークフローを実現するActionsなど多くの新機能を発表
- GitHub Universeで製品担当VPが語ったGitHub Actionsのインパクト
- GitHub Universe開催。βユーザーたちが語るActions導入の容易さ
- CI/CD Conference 2021 MicrosoftとGitHubの連携をMSKKのアーキテクトが解説
- GitHub Universe開催、CI/CDのActions、ArtifactリポジトリのPackagesなど多数の発表が行われた
- GitHub Universe 2022、キーノートで見せた多角的にデベロッパーを支援する機能とは?
- ビルドからリリースまでを抽象化するWaypointにディープダイブ
- GitHub Universe 2023で、GitHubのCSO、Mike Hanley氏にインタビュー
- GitHub Universe開催、ActionsとPackagesの背景にある思想をCTOに訊いた
- GitHub Universe 2023、GitHubのCOO、Kyle Daigle氏にインタビュー