ニュース

GitHub、フルセットのCI/CDに対応した「GitHub Actions」新版を11月にリリース、ワークフローの記述形式もYAMLに

 米GitHubは8月8日(米国時間)、ワークフロー自動化ツール「GitHub Actions」の新版を発表した。“フルセットのCI/CD(継続的インテグレーション/継続的デリバリー)”に対応したことを特徴としている。

 GitHub Actionsは現在β版として登録テスターに提供されている。その正式版が、11月13日(米国時間)に、同社のグローバルイベント「GitHub Universe」に合わせてリリースされることもアナウンスされた。

 こうしたGitHub Actions新版について、9月4日に記者向け説明会が開催されている。

GitHub ActionsがフルセットのCI/CDに対応
現在β版、正式版が11月13日(米国時間)リリース予定

実行方式を変えてLinuxだけでなくmacOSやWindowsにも対応

 2018年の発表以来、GitHub Actionsは好評で、すでに数百以上のActionがβ版ユーザーにより開発され公開されているという。その中で、フィードバックの声としてよく返ってくるのが「フルセットのCI/CDのツールとして使いたい」という声だったと、ギットハブ・ジャパン ソリューションズ・エンジニアの池田尚史氏は説明した。

 具体的な変化で最も大きいのが、LinuxだけでなくmacOSやWindows上でもビルドなどのアクションを実行できるようになったことだ。従来のGitHub Actions(池田氏いわく「バージョン1」)では、ワークフローの中の各アクションは、コンテナとして実行されるため、Linux環境での実行に限られていた。

 それに対して新しいGitHub Actions(池田氏いわく「バージョン2」)では、仮想マシンのmacOSやWindowsで各アクションを実行できるようになった。

 コンテナではない実行をサポートすることに伴い、各アクションもコンテナ定義形式で記述する方法のほか、JavaScriptで記述する方法が用意される。そのため、Dockerfileの書き方に慣れていないがJavaScriptには慣れている人には書きやすくなる、という意味もある。

 この複数OSのサポートによって、例えば3種類のOSと3つのバージョンであれば3×3=9通りのビルドを実行するという「マトリックスビルド」がサポートされた。

 また、ワークフローの記述形式が、HCL(HashiCorp COnfiguration Language)からYAMLに変更された。なお、HCLではワークフローを編集するビジュアルエディターが用意されていたが、YAMLでは現在のところ用意されていない。

ギットハブ・ジャパン ソリューションズ・エンジニアの池田尚史氏
すでにGitHub Actionsを採用している開発コミュニティや企業
GitHub Actionsに対応したサードパーティベンダー

GitHubに完全統合されたCI/CD機能

 このような“フルセットのCI/CD”対応の新しいGitHub Actionは、4つのポイントを意識して開発したと池田氏は説明した。

新しいGitHub Actionsの4つのポイント
特徴

 1つめのポイントは「GitHubへの完全統合」。GitHub内で完結するため、ソースコードリポジトリとCI/CDツールなどとの接続を手動でする必要はない、ビルド結果のパッケージやコンテナイメージなどを「GitHub Package Registry」に登録する処理であれば、その鍵の作成や設定は自動的になされる。あるいはDockerHubやnpm本家リポジトリに登録する処理であれば、GitHubで鍵を管理する「シークレットストア」を利用できる。

 また、GitHubのプロジェクトの中から「Actions」タブをクリックしてGitHubのコーナーに進むと、ワークフローのYAMLのテンプレートを提案してくれる。実行の進行状況のリアルタイム表示もGitHub内で表示される。進行状況のログは、後から検索やリンクすることもできる。

 2つめのポイントは、「GitHub上のあらゆるイベントへフック」できること。例えば、Issueが立てられたときや、コメントが追加されたときなどをトリガーに、処理を実行できる。

 3つめのポイントは「GitHubではコミュニティがコア」ということで、自分の作ったワークフローの共有が用意になっている。「ソフトウェアは世界中のオープンソース開発者の活動のうえにできている。GitHub Actionsでの処理も、世界中の人間で共有しブラッシュアップしていけるようにする」(池田氏)。

 そして4つめのポイントは、「あらゆるプラットフォーム、言語、クラウドに対応」していることだ。

デモより。GitHubのプロジェクトから、「Code」や「Issue」のタブの並びにある「Actions」をクリック
ワークフローのYAMLのテンプレートが提案されるので選ぶ
YAMLを編集してコミットする
ワークフローのトリガーになっているようにプルリクエストをマージする
ワークフローが実行され、GitHub画面内に進行状況がリアルタイム表示される

2019年後半にはローカルでのアクション実行にも対応

 GitHub Actionsが正式版になったときの料金体系についても説明された。オープンソースコミュニティのようなGitHubのパブリックリポジトリでは、GitHub Actionsをすべて無料で利用できる。

 プライベートリポジトリについては、従量制の料金体系となる。ただし、一定時間の無料分もある。Freeプランで1か月あたり2000分、Proプランで3000分、Teamプランで10000分、GitHub Enterpriseで50000分までが無料となる。

 無料分を超えた利用については、1分あたり、Linuxで0.008ドル、Windowsで0.016ドル、macOSで0.08ドルがかかる。

パブリックリポジトリではGitHubActionsはすべて無料
プライベートリポジトリでのGitHubActionsの料金体系

 そのほか、今年後半にリリース予定の機能として、GitHub Actionsの各アクションを、自社ハードウェア上で実行できる機能も池田氏は紹介した。実行するマシン上に、GitHubが用意した「ランナー」というエージェントをインストールすることにより、GitHubサイトのGitHubActionsからの指示を受けて、指定された動作をランナーがローカル実行する。この実行は無料。これにより、例えばオンプレミスで動くGitHub Enterpriseから、GitHub Actionsのアクションをローカルで実行できるようになる。

 ランナーはオープンソースで公開される。CPUアーキテクチャとしてはx86とARMに対応。Raspberry Piにも対応する予定だという。

自社ハードウェアでアクションを実行する機能も今年後半にリリース予定