ニュース
GitHub、フルセットのCI/CDに対応した「GitHub Actions」新版を11月にリリース、ワークフローの記述形式もYAMLに
2019年9月5日 06:00
米GitHubは8月8日(米国時間)、ワークフロー自動化ツール「GitHub Actions」の新版を発表した。“フルセットのCI/CD(継続的インテグレーション/継続的デリバリー)”に対応したことを特徴としている。
GitHub Actionsは現在β版として登録テスターに提供されている。その正式版が、11月13日(米国時間)に、同社のグローバルイベント「GitHub Universe」に合わせてリリースされることもアナウンスされた。
こうしたGitHub Actions新版について、9月4日に記者向け説明会が開催されている。
実行方式を変えて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に完全統合されたCI/CD機能
このような“フルセットのCI/CD”対応の新しいGitHub Actionは、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つめのポイントは、「あらゆるプラットフォーム、言語、クラウドに対応」していることだ。
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ドルがかかる。
そのほか、今年後半にリリース予定の機能として、GitHub Actionsの各アクションを、自社ハードウェア上で実行できる機能も池田氏は紹介した。実行するマシン上に、GitHubが用意した「ランナー」というエージェントをインストールすることにより、GitHubサイトのGitHubActionsからの指示を受けて、指定された動作をランナーがローカル実行する。この実行は無料。これにより、例えばオンプレミスで動くGitHub Enterpriseから、GitHub Actionsのアクションをローカルで実行できるようになる。
ランナーはオープンソースで公開される。CPUアーキテクチャとしてはx86とARMに対応。Raspberry Piにも対応する予定だという。