先日のGitHub Universeで、ワークフローの自動化とカスタマイズを可能にする新機能、GitHub Actionsを発表しました。アプリケーションとサービスの設定は、開発サイクルの多くを占め、かなりの時間と労力を必要とします。GitHub Actionsは、オープンソースの原理をワークフローの自動化に当てはめており、着想から開発まで皆さんが使っているツールを組み合わせて1つのワークフローにします。プロジェクトで必要なアクションは、GitHub上でコードを扱う場合と同じように、作成することも、シェアすることも、見つけることもできます。
Universeでの発表に先立ち、お客様やシステムインテグレーター、オープンソースのメンテナーのグループにGitHub Actionsを試験的に公開したところ、わずか数週間で、数多くのGitHub Actionsを作成していただきました。以下に開発されたActionsを紹介したいと思います。
Flic:ただボタンを押すだけ
_「お気に入りのサービスをできるだけ簡単な方法、つまり、ボタンを押すだけで利用できるようにしたいと考えて作ったのがFlicです。GitHubは、数百万人もの開発者に支持され、使われています。彼らと協力し、Flicの無限の可能性で毎日の生活をシンプルにする独創的な方法を発見する場を提供できたことを嬉しく思います」- Elin Härén、Flic CEO
Flicは、ボタンを1回押してデバイス、アプリケーション、サービスをコントロールするという方法で、皆さんが創造力を発揮し、日々の生活をシンプルにできる無限のチャンスを提供します。GitHub Actionsと組み合わせれば、コマンドラインやキーボードを使わずにワークフローをカスタマイズして自動化できる、パワフルな(そして面白い)ツールになります。Flicを使って、GitHubリポジトリで特定のアクションやタスクを開始させましょう。より良い開発ワークフローを実現します。
Pulumi:継続的デプロイメントのための柔軟な自動化ソリューション
_「GitHub ActionsとPulumiを組み合わせれば、クラウドアプリケーションとインフラをどのようなクラウドにもデプロイできる、簡単な自動化ソリューションが実現します。使うのは、コードとGitだけです」- Joe Duffy、Pulumi共同設立者、CEO
PulumiのオープンソースSDKを使うことで、開発者は好きなプログラミング言語でクラウドアプリケーションとインフラを記述できます。GitHub Actionsと併用すれば、デプロイメントの全体的な状況を詳しく把握できるだけでなく、柔軟な自動化ソリューションを活用して、GitHubから直接AWS、Azure、Google Cloud、Kubernetes、オンプレミスの各種クラウドへ継続的デプロイメントを行うこともできます。
GitHub ActionsとPulumiにより、アプリケーションやインフラ関連のファイルに変更をコミットしたタイミング、またはPull Requestをマージするタイミングなどの作業をトリガーとして、デプロイメントを開始できます。マニュアルでの作業やBashスクリプティングは必要ありません。そのまま、デプロイメントのプレビュー、差分表示、記録を実行できます。また、PulumiのGitHub Appでは、Pull Requestを使ってステージングから本稼働まで、コードの提案、承認、プロモートができます。
Pulumiを使用するには、pulumi.com/githubをご覧ください。
Netlify:ワンランク上の統合とパワフルな新機能
_「Netlifyの顧客の多くは、サイトとアプリケーションをそれぞれのGitHubリポジトリから直接当社のグローバルなApplication Delivery Networkにデプロイします。GitHub Actionsにより、当社はこのワークフローをよりタイトに統合し、パワフルな機能を備えた次のレベルに引き上げました」- Mathias Biilmann、Netlify CEO
Netlifyでは、Webプロジェクトのビルド、デプロイ、管理ができます。Netlifyは、グローバルなデプロイメント、継続的インテグレーション、自動HTTPSを組み合わせたワークフローを提供します。GitHub Actionsを利用することで、Netlifyはより緊密なインテグレーションとパワフルな機能を提供します。複数のサイトでmonorepoを利用している場合は、Actionsを使って、変更があったサイトだけにデプロイすることができます。
HashiCorp Terraform:GitHub ActionsでPull Requestのレビューを簡素化
_「GitHub Actionsにより、Pull RequestのフローでTerraformコードのイタレーションがシンプルになりました。Actionを使うことで実際によく発生する誤りをチェックし、そのワークフローだとどういう結果になるかを提示します。これにより、共同でインフラの変更に取り組む際でも直感的でわかりやすく、シームレスにプロジェクトを進められます」- Mitchell Hashimoto、HashiCorp設立者、CTO
HashiCorp Terraformは、インフラの作成、変更、改良を行うオープンソースのツールです。APIを宣言的設定ファイルとして共有できます。これらのファイルはコードとして扱われ、編集、レビュー、バージョン管理ができます。
TerraformはActionsを使い、Terraformの構成エラーのチェック、TerraformプランのPull Requestへの追加、TerraformによるPull Requestレビューの簡素化を自動で実行します。
Jessie Frazelle、デベロッパー・アドボケート:シンプルで自動化されたオープンソースのワークフロー
_「何もかもこれまでよりずっと速くなりました。たくさんのボットを実行することも、たくさんの異なるサービスとして送信することももうありません」- Jessie Frazelle、Cloud Developer Advocate、Microsoft Azure
Jessie FrazelleはMicrosoft Azureのデベロッパー・アドボケートです。以前はDockerのメンテナーでした。また、Runc、Golang、Kubernetes、Linux カーネルなど、さまざまなプロジェクトにも貢献しています。
GitHub Actionsを利用する前、彼女のオープンソースのワークフローは複雑なもので、さまざまな場所から集めたツールをなんとか組み合わせて統合していました。Jessieは必要なコンテナのすべてを使って作業するために、オートメーションサーバーを利用してリリースプロセスを調整する必要がありました。Actionsにより、JessieはGitHub内だけで開発ワークフロー全体を簡素化し、自動化できるようになりました。
Chewy.com:反復可能で、エラーのないコンプライアンスワークフロー
_「Chewyでは、GitHub Business Cloudを採用しています。GitHub.comのすべてのメリットに加え、SSOなどのエンタープライズインテグレーションも利用できる上に、インフラを自社で管理する必要がありません。GitHub Actionsを試したところ、実に便利でした。作成も、セットアップも、構成も簡単です。使い始めるのに問題になるようなことがほとんどなく、GitHubに組み込み済みです。始めてから1週間もしないうちに使えるようになりました」- Peter Buckley、ソフトウェアオートメーション担当マネージャー、Chewy.com
Chewy.comは、PetSmart傘下のネット販売店で、ペットフードやその他のペット用品を扱っています。Chewy.comのソフトウェアオートメーション担当マネージャーであるPeter Buckley氏は、Actionsを使って、Pull Requestとコミットを正しいフォーマットで実行できる、反復可能なコンプライアンスワークフローを作成しました。このワークフローにより、データフォーマットのエラーが減り、問題 (problem) になる前に課題 (issue) を捉えることができます。実際、Chewyではボットのホスティングを試みる必要がなくなり、GitHubにアクションの処理を任せています。
LaunchDarkly:プロセスではなく、製品に注目した自動機能管理
_「このインテグレーションをビルドしたとき、GitHub Actionsにはかなり柔軟性があることに気付きました。さらにワークフロー内でフィーチャーフラグを使えば、柔軟性をもっと高めることができます。そこで私たちは、コミットを実行するたびにフィーチャーフラグをチェックするアクションを作成しました」- Edith Harbaugh、LaunchDarkly CEO、共同設立者
LaunchDarklyは、本稼働環境に変更をデプロイする際のリスクを抑えるために使う、フィーチャーフラグ管理プラットフォームです。開発チームは、コードのデプロイメントと機能リリースを分離する方法としてフィーチャーフラグを使っています。
LaunchDarklyはActionsを使い、対応するフィーチャーフラグにPull Requestのレビュアーを追加する処理を自動化し、レビュアーが新しい機能を自動的にテストできるようにしました。フィーチャーフラグを削除する際には、別のアクションがそのフィーチャーフラグのすべての位置を探してLaunchDarklyに通知するため、簡単に削除できます。Actionsにより、LaunchDarklyは重要な開発作業に注力して一部のプロセスをGitHubに任せられるようになり、ユーザーのメリットにもなっています。
LaunchDarklyを利用するには、launchdarkly.comをご覧ください。
GitHub Actionsを使い始めよう
ここで紹介した事例から、創造性のひらめきを得られたでしょうか。これらはGitHub Actionsでできることのほんの一部に過ぎません。どのような言語のプロジェクトでも、たとえそれがGitHub上にあるものでも他のシステム上にあるものでも、簡単にビルド、パッケージ化、リリース、アップデート、デプロイができ、開発者がコードを実行する必要はありません。
GitHub Actionsのいいアイデアが思い付いたら、#githubactionsのタグを付けてTwitterでお寄せください。早速ワークフローを作成してみましょう。きっと何でも簡単に作成できるはずです。