GitHub Codespacesのプレビルド機能がリリースされました

Image of Tanmayee Kamath

GitHub TeamプランやGitHub Enterprise Cloudを利用しているユーザーは、大規模プロジェクトやきわめて複雑なプロジェクトであっても、GitHub Codespacesを利用することで短時間で環境を構築できるようになります。

GitHub Codespacesのプレビルド機能がリリースされました

Codespacesをプレビルドする機能がリリースされました。今回のポイントは、プレビルドされたCodespacesを、すぐに利用可能なテンプレートとして活用できることです。このテンプレートには、ソースコード、エディターの拡張機能、プロジェクトの依存関係、コマンド、および構成がすでにダウンロード、インストール、適用されているため、新しいCodespacesを作成する際にこうしたタスクの完了を待つ必要がなく、特に複雑なコードベースや大規模なコードベースでの環境構築にかかる時間を大幅に短縮できます。

今年の初めに、GitHub Codespacesプレビルドのパブリックベータ版を開始したところ、非常に使いやすい部分や改善してほしい部分など多数のフィードバックが寄せられました。本日は、その内容をご紹介いたします。

VantaがGitHub Codespacesを活用し、エンジニアリングチームを2倍に拡大

GitHub Codespacesのプレビルドにより、Vantaはエンジニアのオンボーディング時間を大幅に短縮しました。直近の数か月間でエンジニアリングチームの規模を2倍に拡大した同社にとって、これは重要なことでした。これまでは、新しいエンジニアが入社した時、開発環境を手動でセットアップする必要がありました。また、いったん安定しても、数週間もすると異なる環境になるため、テストが困難になることも頻繁にありました。

「GitHub Codespacesを導入する前は、オンボーディングプロセスは面倒な作業でした。以前は2日かかっていましたが、プレビルドのおかげで、1分もあれば初期状態の安定した環境を利用できるようになりました」と、VantaのソフトウェアエンジニアリングマネージャーであるRobbie Ostrow氏は語っています。「今では、開発環境は短期間で変わりますが、いつでも利用できる最新の状態を常に保っています」

GitHub Codespacesのプレビルド機能がリリースされました

Codespacesをプレビルドする機能がリリースされました。今回のポイントは、プレビルドされたCodespacesを、すぐに利用可能なテンプレートとして活用できることです。このテンプレートには、ソースコード、エディターの拡張機能、プロジェクトの依存関係、コマンド、および構成がすでにダウンロード、インストール、適用されているため、新しいCodespacesを作成する際にこうしたタスクの完了を待つ必要がなく、特に複雑なコードベースや大規模なコードベースでの環境構築にかかる時間を大幅に短縮できます。

今年の初めに、GitHub Codespacesプレビルドのパブリックベータ版を開始したところ、非常に使いやすい部分や改善してほしい部分など多数のフィードバックが寄せられました。本日は、その内容をご紹介いたします。

VantaがGitHub Codespacesを活用し、エンジニアリングチームを2倍に拡大

GitHub Codespacesのプレビルドにより、Vantaはエンジニアのオンボーディング時間を大幅に短縮しました。直近の数か月間でエンジニアリングチームの規模を2倍に拡大した同社にとって、これは重要なことでした。これまでは、新しいエンジニアが入社した時、開発環境を手動でセットアップする必要がありました。また、いったん安定しても、数週間もすると異なる環境になるため、テストが困難になることも頻繁にありました。

「GitHub Codespacesを導入する前は、オンボーディングプロセスは面倒な作業でした。以前は2日かかっていましたが、プレビルドのおかげで、1分もあれば初期状態の安定した環境を利用できるようになりました」と、VantaのソフトウェアエンジニアリングマネージャーであるRobbie Ostrow氏は語っています。「今では、開発環境は短期間で変わりますが、いつでも利用できる最新の状態を常に保っています」

プレビルドのスケジュール設定でGitHub Actionsの使用量を管理

リポジトリ管理者は、チームのニーズに合わせて、プレビルド構成のアップデート方法とタイミングを設定できるようになりました。特定のリポジトリとブランチ向けにプレビルドの作成やアップデートを行えるほか、プレビルドの更新を開始する3つのトリガーを選択できます。

  • Push単位(デフォルト):プレビルド構成を、特定のブランチがPushされるたびにアップデートします。これにより、最近追加またはアップデートされたすべての依存関係を含む最新の構成が、新しいGitHub Codespacesに確実に含まれるようになります。
  • 構成の変更ごと:プレビルド構成を、構成ファイルが変更されるたびにアップデートします。これにより、最新の構成変更が、新しいGitHub Codespacesに確実に反映されます。このオプションでは、プレビルドテンプレートを生成するGitHub Actionsのワークフローの実行頻度が減るため、GitHub Actionsの使用時間を削減できます。
  • スケジュール設定:この設定では、プレビルド構成をアップデートするタイミングをカスタマイズできます。GitHub Actionsの使用時間をさらに減らしたい場合に役立ちます。

リポジトリ管理者は、アップデートを細かく管理できるため、”環境の新しさ” とGitHub Actionsの使用量のバランスをとりながら微調整できます。例えば、大企業の管理者であれば、プレビルド構成のアップデート頻度をPush単位ではなく、1時間ごとに設定することで最適な価格と効率でGitHub Actionsを使用することができます。

不具合を通知することで効率的にモニタリング

また、「プレビルドのワークフローで不具合が発生した時に、問題を注視し、修正できるよう、通知して欲しい」というフィードバックも多数あり、GitHubはプレビルドに不具合通知のサポートを追加しました。これによりリポジトリ管理者は、特定のプレビルド構成に関連するワークフローで不具合が発生した場合に、メールで情報を受け取れる個人またはチームを指定できるようになりました。チームリーダーやプレビルドの管理を担当するエンジニアは、どんな不具合が発生した場合もリポジトリを最新の状態に維持でき、手動でモニタリングする必要がありません。さらに、修正を迅速に行うことができるため、プロジェクトに取り組むエンジニアにプレビルドされた開発環境を確実に提供できます。

また不具合の調査時に活用できる、プレビルド構成を無効にする機能も追加しました。リポジトリ管理者が、内在する問題を修正している間、プレビルドテンプレートのアップデートを一時的に中断したい場合に利用できます。

“プレビルド対応状況” の指標を改善

最後に、作成の迅速化に役立つプレビルド対応のマシンタイプを特定しやすくするため、[prebuild ready (プレビルド対応)]ラベルに加え、特定のブランチ向けにプレビルドテンプレートの作成が進行中の場合に表示される[prebuild in progress (プレビルド進行中)]ラベルを導入しました。

プレビルド利用の料金

本リリースに伴い、特定のリポジトリと地域に関して、プレビルド関連のワークフローの実行に必要なGitHub Actionsの使用時間、および各プレビルド構成に関連するテンプレート用のストレージに対する課金が発生するようになります。管理者は、企業の使用レポートをダウンロードして、企業が所有するリポジトリのプレビルドに関連するGitHub Actionsコストおよびストレージコストの詳細を確認し、使用量の管理に活用できます。

また、ユーザーからの貴重なフィードバックに基づき、プレビルド関連のストレージコストを管理する機能も追加しました。

テンプレート保持でストレージコストを管理

リポジトリ管理者は、保持するプレビルドテンプレートバージョンの数を指定できるようになりました。デフォルトのテンプレート保持数は2に設定されています。デフォルト設定の2では、Codespacesによって、最新と1つ前のプレビルドテンプレートバージョンが保持されるため、それ以前のバージョン分のストレージを節約できます。

プレビルドを使ってみる

現時点では、プレビルドは、GitHub Enterprise CloudおよびGitHub Teamプラン向けに提供されています。

リポジトリの管理者は、リポジトリの設定ページに移動して、[Codespaces]タブからプレビルド構成を作成できます。エンジニアは、リポジトリ内にあるプレビルド対応のブランチに移動し、[prebuild ready (プレビルド対応)]ラベルが付いたマシンタイプを選択することで、プレビルドされたCodespacesを作成できます。

プレビルドを使い始めるにあたっての詳細はこちらからご覧ください。

リリース後も、皆さんのフィードバックを踏まえ、今後もモノレポやマルチリポジトリのシナリオでのプレビルドを実現する機能の開発に取り組んでいきます。本機能の改善に役立つフィードバックがありましたら、GitHubのディスカッションフォーラムへお寄せください。