Cloud Build を使用してビルドを自動化する
このページでは、Cloud Build を使用してビルドを自動化する方法について説明します。
Cloud Build は、ビルドトリガーを使用して CI / CD の自動化を有効にします。新しい commit がリポジトリに push されたときや、pull リクエストが開始されたときなどでの受信イベントをリッスンし、新しいイベントが生じたときにビルドを自動的に呼び出すようにトリガーを構成できます。
トリガーを作成し、GitHub リポジトリに変更を push するたびにビルドを呼び出すようにトリガーを構成します。
このタスクを Cloud Shell エディタで直接行う際のガイダンスについては、「ガイドを表示」をクリックしてください。
始める前に
- Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init まだインストールしていない場合は、GitHub でアカウントを作成してください。
GitHub で 2 要素認証を設定している場合は、コマンドラインで GitHub パスワードの代わりに使用する個人用のアクセス トークンを作成します。
必要なロール
Cloud Build を使用してビルドを自動化するために必要な権限を取得するには、Cloud Build サービス アカウントに対する次の IAM ロールを付与するよう管理者に依頼してください。
-
Cloud Build 編集者(
roles/cloudbuild.builds.editor) -
Storage オブジェクト ユーザー (
roles/storage.objectUser) -
ストレージ バケット閲覧者 (
roles/storage.bucketViewer) -
Cloud Build 接続管理者 (
roles/cloudbuild.connectionAdmin)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
サンプル GitHub リポジトリをフォークしてクローンを作成する
ビルドするサンプル ソースコードが必要です。このセクションでは、Go の Hello World のサンプルを含む既存のソース リポジトリのクローンを、独自の GitHub ユーザー アカウントに作成します。まだインストールしていない場合は、GitHub でアカウントを作成してください。
GitHub で 2 要素認証を設定している場合は、コマンドラインで GitHub パスワードの代わりに使用する個人用のアクセス トークンを作成します。
cloud-build-samplesリポジトリを自分の GitHub アカウントにフォークします。Cloud Build の cloud-build-samples リポジトリに移動します。
ページの右上にあるフォーク アイコンをクリックします。
リポジトリのフォーク先の GitHub ユーザー アカウントをクリックします。
フォークされた
cloud-build-samplesリポジトリのバージョンのページに自動的にリダイレクトされます。
ローカル環境でターミナルを開きます。
次のコマンドを実行して、フォークされたリポジトリのクローンを作成します。ここで、GITHUB_USERNAME は、GitHub アカウントのユーザー名です。
git clone https://github.com/GITHUB_USERNAME/cloud-build-samples.git
Cloud Build を自分のリポジトリに接続する
トリガーを使用して GitHub でソースコードをビルドするには、まず Cloud Build を GitHub リポジトリに接続する必要があります。このセクションでは、cloud-build-samples リポジトリを Cloud Build に接続します。Google Cloud コンソールのナビゲーション メニューで、[Cloud Build] > [トリガー] をクリックします。
プロジェクトを選択し、[開く] をクリックします。
[
リポジトリを接続 ] をクリックします。[ソースを選択] で、[
GitHub(Cloud Build GitHub アプリ) ] を選択します。[
続行 ] をクリックします。GitHub アカウントを認証します。
[リポジトリを選択] セクションで、[
GitHub アカウント ] のユーザー名を選択します。自分のユーザー名がリストに表示されていない場合は、次のようにします。[GitHub アカウント] リストで、[+ 追加] をクリックします。
Cloud Build GitHub アプリをインストールするためのポップアップが表示されます。
自分の GitHub ユーザー名をクリックします。
[Only certain repositories] をクリックして、特定のリポジトリに Cloud Build GitHub アプリをインストールします。
プルダウン メニューで、[GITHUB_USERNAME/cloud-build-samples] を選択します。ここで、GITHUB_USERNAME は GitHub アカウントのユーザー名です。
[Install] をクリックします。
続行する前に、GitHub アカウントに関連付けられているパスワードの入力を求められることがあります。
Cloud Build GitHub アプリをインストールした後、[GitHub アカウント] フィールドのプルダウン メニューに自分のユーザー名が表示されます。ユーザー名を選択します。
[
リポジトリ ] で、リポジトリとして [GITHUB_USERNAME/cloud-build-samples] を選択します。チェックマークをクリックして、トリガー接続の利用規約に同意します。
[
接続 ] をクリックします。[
完了 ] をクリックします。
トリガーを作成する
Google Cloud コンソールで [トリガー] ページを開きます。
ページの上部にあるプロジェクト セレクタのプルダウン メニューからプロジェクトを選択します。
[開く] をクリックします。
[トリガー] ページで、[
トリガーを作成 ] をクリックします。[トリガーの作成] ページで、次の設定を入力します。
名前: トリガーの名前として「
hello-world-trigger」と入力します。イベント: トリガーを呼び出すリポジトリ イベントとして [
ブランチに push する ] を選択します。ソース : ソースとしてcloud-build-samplesリポジトリを選択します。このリポジトリにはソースコードとビルド構成ファイルが含まれています。ビルド構成: ビルド構成ファイルとして [
Cloud Build 構成ファイル ] を選択します。Cloud Build 構成ファイルの場所 : Cloud Build 構成ファイルへのパスとしてquickstart-automate/cloudbuild.yamlを指定します。
[
作成 ] をクリックして、ビルドトリガーを保存します。
変更を commit する
このセクションでは、独自の GitHub アカウントにクローン作成した cloud-build-samples リポジトリに変更を commit します。
ターミナルで
quickstart-automateディレクトリに移動します。cd cloud-build-samples/quickstart-automatemain.goファイルを開き、「Hello, world!」を含む行を「Hello, universe!」に更新します。package main import ( "fmt" ) func main() { fmt.Println("Hello, universe!") }
Cloud Build で使用されるビルド構成ファイルである
を確認します。トリガーによってビルドを呼び出すと、このファイルのビルドステップは、Docker Hub のcloudbuild.yamlgolangイメージを使用してmain.goのビルドと実行を行うように Cloud Build に指示します。steps: - name: golang script: go run quickstart-automate/main.go
リポジトリのルート ディレクトリに戻ります。
cd ..次のコマンドを実行して、変更を GitHub に commit します。
git add quickstart-automate/main.go git commit -m "update text" git pushコードをリポジトリに push するときに、認証情報の入力を求められることがあります。プロンプトが表示されたら、ユーザー名とパスワードまたは認証トークンを入力します。
これで、変更がリポジトリに push されました。push することで、トリガーによって自動ビルドが行われます。
ビルドの詳細を表示
このセクションでは、変更の commit 後に、呼び出されたビルドに関連付けられたビルドの詳細を表示します。Google Cloud コンソールのナビゲーション メニューで、[Cloud Build] > [履歴] をクリックします。
プロジェクトを選択し、[開く] をクリックします。
[ビルド履歴] ページが表示されます。
[
ビルド ] 列で、ビルドの名前をクリックします。[ビルドの詳細] ページで、[
ビルド アーティファクト ] をクリックします。出力は次のようになります。
ビルドログを見るには、
ダウンロード アイコン をクリックし、ダウンロードされたファイルを開きます。
トリガーを使用して Cloud Build のビルドが正常に呼び出され、ビルドの詳細を表示しました。
クリーンアップ
このページで使用したリソースについて、 Google Cloud アカウントに課金されないようにするには、次の手順を実施します。
Google Cloud コンソールのナビゲーション メニューで、[Cloud Build] > [トリガー] をクリックします。
プロジェクトを選択し、[開く] をクリックします。
hello-world-trigger行の右端にある [アクション メニュー ](縦三点リーダー)をクリックします。[削除] を選択します。
これで、クローンされたリポジトリに関連付けられているトリガーが削除されました。
次のステップ
- 基本的なビルド構成ファイルを作成する方法を学習する。
- ビルドトリガーを作成および管理する方法を学習する。