連載
» 2019年08月21日 05時00分 公開

「GitHubらしいやり方を考えた」:GitHub ActionsがCI/CDをビルトインサポート、具体的にはどうなっているか (1/2)

GitHubは2019年8月8日(米国時間)、開発者ワークフロー自動化ツールの「GitHub Actions」で、CI/CDのサポートを発表した。具体的にはどのように使えるのだろうか。

[三木泉,@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 GitHubは2019年8月8日(米国時間)、開発者ワークフロー自動化ツールの「GitHub Actions」で、CI/CD(Continuous Integration/Continuous Delivery)のサポートを発表した。正式提供開始は、(同社イベント「GitHub Universe」開催日の)2019年11月13日を予定する。その後も、公開リポジトリではこの機能を無償で利用できることになるという。

 2018年10月にGitHub Actionsを発表した当時、GitHubはこれを、「GitHubの各種機能と(CI/CDツールを含む)外部のツール、さらに外部ツール同士をつなぎ合わせ、開発者にとって煩わしいさまざまなプロセスを自動化する」ものと表現していた。

 発表時、GitHubのエコシステムエンジニアリング担当ディレクター、カイル・ダイグル氏は、「瓶の中には、幾つかの大きな石が入っている。石の一つ一つは開発者ツール、CIツール、クラウドなどだ。このビンに入れる砂の役割をするのがGitHub Actionsだ。さまざまなツール間の隙間を埋め、ビンを完全に満たすことができる」と説明した。他社のCI/CDツールとの競合について聞くと、同氏は「(GitHub Actionsを)『限定パブリックβ』という形にしているのは、ユーザーが何に使いたいのかをもっと知りたいからでもある」と答え、ニーズを見極めたいとの姿勢を示していた。

 それから数カ月が経った2019年8月8日、GitHub CEOのナット・フリードマン氏は、CI/CD対応の発表イベントで、背景を次のように説明した。

 「(発表および限定パブリックβの開始後)9カ月にわたり、私たちは1つのフィードバックを繰り返し、繰り返し、繰り返し聞いた。『Actionsに、CI/CDをやってほしい』ということだ」

 GitHubはこれまで個々のCI/CDツールと連携し、さらにGitHub Actionsを通じて、各ツールを利用しやすくしてきた。一方、今回のCI/CD対応では、他のCI/CDツールを使わなくとも自己完結的にCI/CDプロセスが行える選択肢を提供することになった。

 CI/CDツール専業のCircleCIはこの発表を受け、当日にジム・ローズCEOのブログポストを公開した。

 「GitHubは今日、Actionsを拡張してCI/CDを取り込むと発表した。私たちはこれをしばらく前から予想していた。当社の長期にわたるパートナーであるGitHubがCI/CDスペース(注:「市場分野」の意味)に来たことを歓迎する」とローズ氏は表現した。

 さらに、「CI/CDは解決の難しい課題だ。私たちは開発チームがアイデアをデリバリーにつなげるための支援を、9年以上経験してきた。この間、全ての大規模クラウドプレイヤーを含め、多数のチームがCI/CD市場に参入し、去っていくのを見てきた」と述べ、続けて、CircleCIがなぜ開発チームにとっての最強のCI/CDツールであり続けるのかを説明した。

 同ブログポストは、GitHubが引き続きパートナーでありながらも、今や自社と競合する存在になったという認識を、婉曲的に示したものと解釈できる。

事前設定はゼロ、CI/CDも自動化の選択肢としてGitHubに埋め込む

 GitHub Actionsは、GitHubや外部ツールのAPIを活用するコード(「Action」と呼ぶ)を、実行順序などを指定したworkflowファイル(YAML)に基づいて実行するもの。workflowのトリガーとしては、GitHubにおけるほぼ全てのイベント(および外部イベント)が利用できる。Actionやworkflowファイルは、再利用や共有がしやすい。

 今回の発表で、開発者は自らのリポジトリに適切なworkflowを適用するだけで、外部ツールを使うことなく、ビルド、テスト、デプロイを全て自動化できるようになった。利用するworkflowによって、ビルドとテストを自動化する、デプロイまでを自動化するといったことができる。

 フリードマン氏は発表イベントで、「GitHubに組み込まれているため、あらゆる雑作業から開発者を解放できる。CI/CDを手で構築・設定する必要はない。webhooksの設定も要らない。ハードウェアを買ったり、インスタンスを予約したり、イメージにアップデートやセキュリティパッチを適用したり、使われていないマシンを停止したりといったことも必要ない。私たちが全てを行う。ファイルを1つ、あなたのリポジトリにドロップするだけで、動き始める」と説明した。

 シンプルなCI/CDを超える機能の一つに、「Matrix Builds」がある。これは複数のOS(Linux、Windows、Mac OSに対応)および複数のランタイムバージョンによる、同一コードのテストを並行的に自動実行するもの。単一のworkflowファイルに数行の記述を追加するだけで利用できる。

ここではworkflowファイルにNode.jsのバージョン8、10、12とUbuntu、Windows、Mac OSの組み合わせで9種類のMatrix Buildsを実行する記述をしている

 また、「Live Logs」では、コンソールにActionsの実行ログをリアルタイムで表示する。この画面上でログを検索可能。また、任意の行をパーマリンクとしてリンクし、開発チーム内のやり取りに活用するなどもできるという。

 発表イベントにおけるデモでは、実際の使い勝手を次のように紹介した。

 まず、ユーザーが自身のリポジトリでメニューの「Actions」というタブを押すと、使われている開発言語の自動検知に基づいて、CI関連でおすすめのworkflowテンプレートが表示される。使いたいworkflowを選択すると、該当workflowファイルが自由に編集できるようになる。

リポジトリでActionsタブを選択すると、CIなどのおすすめworkflowテンプレートがリスト表示される。それ以外のworkflowファイルを検索して利用することも、もちろん可能
       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。