GitHub Actions

GitHubがCI/CDサービスを標準サポートへ

次の記事

セキュリティチームは「面倒な奴ら」のままでいいのか

Microsoft(マイクロソフト)傘下のGitHub(ギットハブ)は米国時間8月8日、CI(継続的インテグレーション)/CD(継続的デリバリー)機能をフルにサポートするGitHub Actionsの新バージョンをベータ公開した。一般公開も11月13日に予定している。

また同社は、それと同時に、GitHubのプラットフォームには、すでに4000万人以上のデベロッパーが参加していることも発表した。

ワークフローを自動化するプラットフォーム、ActionsをGitHubが公開したのは10カ月前だ。デベロッパーは、それ以前から、あらゆる種類のイベントをトリガーすることによって、独自にCI/CDのパイプラインを実現することも可能だった。GitHubチームがActionsの発表の際に強調していたのは、Actionsを使ってそうしたパイプラインを実現することも可能だが、Actionsにはもっと多くの可能性があるということ。もちろん、デベロッパーはActionsを使ってCI/CDを実現することに、かなりの興味を抱いていたはずだ。

「昨年にGitHub Actionsを導入して以来、それに対する反応には目を見張るものがありました。すでにデベロッパーは、それに触発されて、数千ものワークフローを作成しています」と、GitHubのCEOであるNat Friedman(ナット・フリードマン)氏は、今回の発表の中に書いている。「しかし、寄せられたフィードバックでは、ほとんどすべての人が、CI/CDも欲しいと書いていました。まさに、それを今日発表するのです」。

今回更新されたActionsの新バージョンを使うと、デベロッパーはコードを任意のプラットフォーム上でビルドし、テストして、デプロイすることができる。また、コンテナや仮想マシン上でワークフローを実行することも可能となる。またデベロッパーは、「マトリクスビルド」と呼ばれる新機能を利用して、アプリケーションの複数のバージョンを、同時にテストすることもできる。例えば、3つの異なるバージョンのNode.jsを、LinuxとWindowsとmacOS上で同時にテストできるのだ。GitHub Actionsは、基本的なYAMLファイルとして記述されているので、こうした変更を加えるにもそのファイルに数行を追加するだけでいい。

サポートされる言語とフレームワークは、Node.js、Python、Java、PHP、Ruby、C/C++ 、. NET、Android、iOSなどとなっている。Actionsは、GitHubのパッケージレジストリとも統合されている。

アプリケーションをビルドする際には、ライブログがActionsのコンソールに吐き出される。そのログファイルの任意の行にリンクを張り、その問題についてチームのメンバーと話し合うことも簡単にできる。

こうした新機能は、ベータ期間中は無料で利用できる。また、公開リポジトリについては、それ以降も無料だ。

GitHub Enterprise Server用のActionsは、来年に登場する予定だ。コードをプライベートなデータセンターに保持したまま、GitHubを使ってワークフローを管理するという、ハイブリッドなオプションが利用可能となる。

「GitHub Actionsは、CI/CDやソフトウェアの自動化を民主化するものです。デベロッパーは、GitHubプラフォームのどんなイベントに対しても応答するワークフローを書くことができます。さらにオープンソースの、つまり再利用可能なコードとしてのGitHub Actionsを参照することで、普通にアプリのコードを書くのと同じようにして、自分のソフトウェアのライフサイクルの管理を強力なものにすることができます」と、GitHubのプロダクトデザイン部門の担当シニアディレクターであるMax Schoening(マックス・スクーニング)氏は述べている 。「これは本当に、コミュニティによって成り立っているCI/CDなのです。課金モデルも、誰もが納得できるものでしょう」。

今回の発表で、すでにGitHubプラフォーム上でビジネスを展開している、いくつかのCI/CDのスタートアップと、GitHub自身が直接競合することが明らかとなった。そこには、多少の摩擦が生じる可能性もある。

「GitHubは、すべてのパートナーに対して、引き続きプラットフォームをオープンにすると約束しています。どのような結果になるのかは、いずれ自ずと明らかになるでしょう」と、CircleCIのCEOであるJim Rose(ジム・ローズ)氏は声明の中で述べている。「デベロッパーは賢いので、結局は利用可能なものの中から、最良で最も強力なツールを選ぶことになります。そこでは、CircleCIが選ばれるものと確信しています。(中略)CircleCIには、9年以上にわたって、いろいろなチームがアイディアを製品として実現する過程に関わってきた実績があります。CircleCIはCI/CDのリーダーであり、デベロッパーに対して最適なソリューションを提供できるものと確信しています」。

ローズ氏のコメントは、他のCI/CD関連のプレーヤーが考えていることを代表しているものと思われる。また、同氏も触れていたように、Actionsは、他の継続的インテグレーションのサービスと統合することも可能であり、デベロッパーは自らのプラフォームのビルドを、それによってトリガーすることもできるのは重要なポイントだ。CI/CD機能のプロバイダーは、独自のActionsを作成して、GitHubで提供することもできるのだ。

「GitHubのActionsは、Codefreshの機能を補完するものと考えています。ユーザーがCodefreshを活用して、スケーラブルで堅牢なパイプラインを構築する方法のバリエーションを追加するものなのです。1つ興味深い点は、GitHubがActionsを設計するにあたって、私たちの方法を手本としたことです。実際、GitHubのActionsは、Codefreshのパイプライン内のステップとして使うことも可能です。つまり、言ってみれば、私たちの方法はとても相性がいいのです」と、CI/CDプラットフォーム、Codefreshの主席技術エバンジェリストであるDan Garfield(ダン・ガーフィールド)氏は述べている。「デベロッパーは、GitHub上でCodefreshのアクションそのものを見ることになるでしょう」。

これについてGitHubに尋ねると、スクーニング氏は次のように回答した。「GitHubと、そのコミュニティは、選択の自由と、オープンなエコシステムを信じています。その信念は私たちにとって非常に重要であり、私たちの行動すべてに反映されています。デベロッパーは、GitHubのActionsを既存のあらゆるツール類と統合し、デベロッパー自身の製品と組み合わせたり、適合させることができます。そしてソフトウェアのライフサイクルの、あらゆる部分に適用することができるのです。これについては、既存のCI/CDのパートナーも例外ではありません」。

原文へ

(翻訳:Fumihiko Shibata)