Cloud Build を使用したビルドの自動化

このトピックでは、Cloud Build と Cloud Source Repositories を使用してビルドを自動化する方法を説明します。

ユーザーが Cloud Source Repositories に格納されているファイルに変更を push するたびに新しいイメージを自動的にビルドするよう Cloud Build を構成できます。自動ビルドを開始するイベントは、ビルドトリガーと呼ばれます。これらのトリガーは、コンテナ イメージを最新の状態に維持するために役立ちます。また、それらを使用して機能ブランチをビルドしてテストすることもできます。

始める前に

詳細情報

これらの前提条件に加えて、次の情報が役に立つことがあります。

  • ビルドトリガーは、リポジトリのシャロー クローンを使用します。シャロー クローンでは、自動ビルドをトリガーした単一の commit だけがワークスペースにチェックアウトされます。詳細とさらに多くのリポジトリ履歴を含める方法については、クローンのシャロー解除をご覧ください。

  • GitHub や Bitbucket などの別のホストされた Git プロバイダを使用していて、リポジトリを Cloud Source Repositories にミラーリングする必要がある場合は、作業している Google Cloud プロジェクトの cloudbuilds.builds.create 権限を持っている必要があります。通常、この権限は cloudbuild.builds.editor の役割を介して付与されます。

    初めて外部リポジトリでビルドトリガーを設定する場合は、そのリポジトリで承認を設定する必要があります。詳細については、リポジトリをリモートとして追加するをご覧ください。

    外部リポジトリを設定すると、Cloud Source Repositories でリポジトリのミラーが作成されます。

  • Cloud Build の割り当てと制限の詳細については、Cloud Build ドキュメントの割り当てと上限をご覧ください。

ビルドトリガーを作成する

新しいビルドトリガーを作成する方法は次のとおりです。

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

    [ビルドトリガー] ページを開く

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

    [トリガー] ページが開きます。

  3. [トリガーを作成] をクリックします。

    [トリガーの作成] ページが開きます。

  4. [リポジトリ] プルダウン リストで、使用可能なリポジトリのリストからリポジトリを選択します。

  5. 次のオプションを入力します。

    • 省略可。[説明] フィールドにトリガーの名前を入力します。
    • 省略可。[トリガーのタイプ] タイプで、特定のブランチに対する commit と同時、または特定のタグを含む commit と同時にビルドを開始するトリガーを設定できます。いずれの場合でも、照合するブランチまたはタグの値に正規表現を指定できます。

    • [ビルド構成] リストで、トリガーを開始するビルドごとに、使用する構成ファイルのタイプを選択します。Dockerfile を選択して指定するか、リモート リポジトリにある Cloud Source Repositories 構成ファイルを選択します。必要に応じて、このページで Dockerfile または ビルド構成ファイルに関する情報を確認します。

  6. [トリガーを作成] をクリックします。

Dockerfile の使用

ビルド構成に Dockerfile を使用するには、Dockerfile ディレクトリを指定し、結果的生じるイメージの名前を指定する必要があります。

Dockerfile とイメージ名を入力すると、ビルドで実行される docker build コマンドのプレビューと、トリガー構成の概要が表示されます。

ビルド構成ファイルの使用

ビルド構成にビルド構成ファイルを使用するには、ビルド構成ファイルの場所を指定する必要があります。

ロケーションを設定すると、トリガーの概要が表示されます。

ビルドトリガーをテストする

ビルドトリガーを手動でテストするには、トリガーリストのトリガーのエントリで [トリガーを実行] をクリックします。

ビルドトリガーをスキップする

たとえば、ドキュメントや構成ファイルを更新する場合など、ソースコードを変更するだけで、ビルドをトリガーしたくない場合があります。

このようなケースでは、commit メッセージに [skip ci] または [ci skip] を追加すると、ビルドのトリガーをスキップできます。

例:

Author: A User <auser@example.com>
Date:   Tue Apr 3 12:03:35 2018 -0700

Fixed customer affecting issue. [skip ci]

後でその commit でビルドを実行する場合は、[トリガーを実行] ボタンを使用します。

クローンのシャローを解除する

Git リポジトリでソースをビルドするときに、Cloud Source Repositories はリポジトリのシャロー クローンを実行します。Cloud Source Repositories は、シャロー クローンを実行すると、ビルドをトリガーした単一の commit のみをワークスペースからチェックアウトし、そのソースからビルドします。Cloud Source Repositories では他のブランチや履歴がチェックアウトされません。これは効率を高めるために行われます。ビルドで単一の commit をビルドするために Cloud Source Repositories がリポジトリ全体と履歴をフェッチするときに、遅延は発生しません。

リポジトリの履歴を追加してビルドに含める場合は、ビルド構成ファイルにビルドステップを追加して、クローンのシャローを解除できます。例:

steps:
- name: gcr.io/cloud-builders/git
  args: ['fetch', '--unshallow']
...

git fetch について詳しくは、git のリファレンスをご覧ください。ビルド構成ファイルの作成方法については、ビルド構成の概要をご覧ください。

次のステップ