Cloud Build を使用してビルドを自動化する

このページでは、Cloud Build を使用してビルドを自動化する方法について説明します。

Cloud Build は、ビルドトリガーを使用して CI / CD の自動化を有効にします。新しい commit がリポジトリに push されたときや、pull リクエストが開始されたときなどでの受信イベントをリッスンし、新しいイベントが生じたときにビルドを自動的に呼び出すようにトリガーを構成できます。

トリガーを作成し、GitHub リポジトリに変更を push するたびにビルドを呼び出すようにトリガーを構成します。


このタスクを Cloud Shell エディタで直接行う際のガイダンスについては、「ガイドを表示」をクリックしてください。

ガイドを表示


始める前に

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Cloud Build API を有効にします。

    API を有効にする

  5. Google Cloud CLI をインストールします。
  6. gcloud CLI を初期化するには:

    gcloud init
  7. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  8. Google Cloud プロジェクトで課金が有効になっていることを確認します

  9. Cloud Build API を有効にします。

    API を有効にする

  10. Google Cloud CLI をインストールします。
  11. gcloud CLI を初期化するには:

    gcloud init
  12. まだインストールしていない場合は、GitHub でアカウントを作成してください。

  13. GitHub で 2 要素認証を設定している場合は、コマンドラインで GitHub パスワードの代わりに使用する個人用のアクセス トークンを作成します。

サンプル GitHub リポジトリをフォークしてクローンを作成する

ビルドするサンプル ソースコードが必要です。このセクションでは、Go の Hello World のサンプルを含む既存のソース リポジトリのクローンを、独自の GitHub ユーザー アカウントに作成します。
  1. まだインストールしていない場合は、GitHub でアカウントを作成してください。

  2. GitHub で 2 要素認証を設定している場合は、コマンドラインで GitHub パスワードの代わりに使用する個人用のアクセス トークンを作成します。

  3. cloud-build-samples リポジトリを自分の GitHub アカウントにフォークします。

    1. Cloud Build の cloud-build-samples リポジトリに移動します。

    2. ページの右上にあるフォーク アイコンをクリックします。

    3. リポジトリのフォーク先の GitHub ユーザー アカウントをクリックします。

      フォークされた cloud-build-samples リポジトリのバージョンのページに自動的にリダイレクトされます。

  4. ローカル環境でターミナルを開きます。

  5. 次のコマンドを実行して、フォークされたリポジトリのクローンを作成します。ここで、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 に接続します。
  1. Google Cloud Console のナビゲーション メニューで、[Cloud Build] > [トリガー] をクリックします。

    [トリガー] ページを開く

  2. プロジェクトを選択し、[開く] をクリックします。

  3. [リポジトリを接続] をクリックします。

  4. [ソースを選択] で、[GitHub(Cloud Build GitHub アプリ)] を選択します。

  5. [続行] をクリックします。

  6. GitHub アカウントを認証します。

  7. [リポジトリを選択] セクションで、[GitHub アカウント] のユーザー名を選択します。自分のユーザー名がリストに表示されていない場合は、次のようにします。

    1. [GitHub アカウント] リストで、[+ 追加] をクリックします。

      Cloud Build GitHub アプリをインストールするためのポップアップが表示されます。

    2. 自分の GitHub ユーザー名をクリックします。

    3. [Only certain repositories] をクリックして、特定のリポジトリに Cloud Build GitHub アプリをインストールします。

    4. プルダウン メニューで、[GITHUB_USERNAME/cloud-build-samples] を選択します。ここで、GITHUB_USERNAME は GitHub アカウントのユーザー名です。

    5. [Install] をクリックします。

      続行する前に、GitHub アカウントに関連付けられているパスワードの入力を求められることがあります。

    6. Cloud Build GitHub アプリをインストールした後、[GitHub アカウント] フィールドのプルダウン メニューに自分のユーザー名が表示されます。ユーザー名を選択します。

  8. [リポジトリ] で、リポジトリとして [GITHUB_USERNAME/cloud-build-samples] を選択します。

  9. チェックマークをクリックして、トリガー接続の利用規約に同意します。

  10. [接続] をクリックします。

  11. [完了] をクリックします。

トリガーは、次のセクションで作成します。

トリガーを作成する

  1. Google Cloud Console で [トリガー] ページを開きます。

    [トリガー] ページを開く

  2. ページの上部にあるプロジェクト セレクタのプルダウン メニューからプロジェクトを選択します。

  3. [開く] をクリックします。

  4. [トリガー] ページで、[トリガーを作成] をクリックします。

  5. [トリガーの作成] ページで、次の設定を入力します。

    • 名前: トリガーの名前として「hello-world-trigger」と入力します。

    • イベント: トリガーを呼び出すリポジトリ イベントとして [ブランチに push する] を選択します。

    • ソース: ソースとして cloud-build-samples リポジトリを選択します。このリポジトリにはソースコードとビルド構成ファイルが含まれています。

    • ビルド構成: ビルド構成ファイルとして [Cloud Build 構成ファイル] を選択します。

    • Cloud Build 構成ファイルの場所: Cloud Build 構成ファイルへのパスとして quickstart-automate/cloudbuild.yaml を指定します。

  6. [作成] をクリックして、ビルドトリガーを保存します。

変更を commit する

このセクションでは、独自の GitHub アカウントにクローン作成した cloud-build-samples リポジトリに変更を commit します。

  1. ターミナルで quickstart-automate ディレクトリに移動します。

    cd cloud-build-samples/quickstart-automate
  2. main.go ファイルを開き、「Hello, world!」を含む行を「Hello, universe!」に更新します。

      package main
    
      import (
          "fmt"
      )
    
      func main() {
          fmt.Println("Hello, universe!")
      }
      
  3. Cloud Build で使用されるビルド構成ファイルである cloudbuild.yaml を確認します。トリガーによってビルドを呼び出すと、このファイルのビルドステップは、Docker Hub の golang イメージを使用して main.go のビルドと実行を行うように Cloud Build に指示します。

       steps:
       - name: golang
         script: go run quickstart-automate/main.go
       
  4. リポジトリのルート ディレクトリに戻ります。

       cd ..
  5. 次のコマンドを実行して、変更を GitHub に commit します。

        
        git add quickstart-automate/main.go
        git commit -m "update text"
        git push

    コードをリポジトリに push するときに、認証情報の入力を求められることがあります。プロンプトが表示されたら、ユーザー名とパスワードまたは認証トークンを入力します。

これで、変更がリポジトリに push されました。push することで、トリガーによって自動ビルドが行われます。

ビルドの詳細を表示

このセクションでは、変更の commit 後に、呼び出されたビルドに関連付けられたビルドの詳細を表示します。
  1. Google Cloud Console のナビゲーション メニューで、[Cloud Build] > [履歴] をクリックします。

    Cloud Build ページを開く

  2. プロジェクトを選択し、[開く] をクリックします。

    [ビルド履歴] ページが表示されます。

    自動化されたビルド履歴ページのスクリーンショット

  3. [ビルド] 列で、ビルドの名前をクリックします。

  4. [ビルドの詳細] ページで、[ビルド アーティファクト] をクリックします。

    出力は次のようになります。

    ビルド アーティファクトのスクリーンショット

  5. ビルドログを見るには、ダウンロード アイコンをクリックし、ダウンロードされたファイルを開きます。

トリガーを使用して Cloud Build のビルドが正常に呼び出され、ビルドの詳細を表示しました。

クリーンアップ

このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を行います。

  1. Google Cloud Console のナビゲーション メニューで、[Cloud Build] > [トリガー] をクリックします。

    [トリガー] ページを開く

  2. プロジェクトを選択し、[開く] をクリックします。

  3. hello-world-trigger 行の右端にある [アクション メニュー](縦三点リーダー)をクリックします。

  4. [削除] を選択します。

これで、クローンされたリポジトリに関連付けられているトリガーが削除されました。

次のステップ