GitLab からリポジトリをビルドする

Cloud Build を使用すると、GitLab でホストされているリポジトリからビルドするトリガーを作成できます。GitLab リポジトリに関連付けられた commit push やマージ リクエストなどのイベントに応じてビルドを実行できます。

このページでは、GitLab インスタンスでトリガー機能を有効にする方法について説明します。Cloud Build トリガーCloud Build リポジトリの詳細を確認します。

準備

  • Enable the Cloud Build and Secret Manager APIs.

    Enable the APIs

GitLab トリガーの作成

コンソール

Google Cloud コンソールを使用して GitLab トリガーを作成するには:

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

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

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

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

  4. 次のトリガー設定を入力します。

    • 名前: トリガーの名前。

    • リージョン: トリガーのリージョンを選択します。

      • トリガーに関連付けられたビルド構成ファイルでプライベート プールが指定されている場合、Cloud Build は、そのプライベート プールを使用してビルドを実行します。この場合、トリガーで指定するリージョンは、プライベート プールを作成したリージョンと一致する必要があります。
      • トリガーに関連付けられたビルド構成ファイルでプライベート プールが指定されていない場合、Cloud Build はデフォルトのプールを使用してトリガーと同じリージョンでビルドを実行します。
    • 説明(省略可): トリガーの説明。

    • イベント: トリガーを起動するリポジトリ イベントを選択します。

      • ブランチに push する: 特定のブランチに対して commit が行われたときにビルドを開始するトリガーを設定します。

      • 新しいタグを push する: 特定のタグを含む commit が行われたときにビルドを開始するトリガーを設定します。

      • pull リクエスト: マージ リクエストの commit が行われたときにビルドを開始するトリガーを設定します。

    • ソース: ソースとして [第 2 世代] を選択します。

      • リポジトリ: 使用可能なリポジトリのリストから目的のリポジトリを選択します。新しいリポジトリに接続するには、GitLab リポジトリに接続するをご覧ください。

      • ブランチまたはタグ: ブランチまたはタグの値にマッチングさせる正規表現を指定します。有効な正規表現の構文については、RE2 構文をご覧ください。

      • コメント制御: イベントとして pull リクエストを選択した場合は、ビルドをトリガーによって自動的に実行するかどうか、次のいずれかのオプションを選択します。

        • Required except for owners and collaborators: マージ リクエストがリポジトリ所有者または共同編集者によって作成または更新されると、ビルドが自動的にトリガーによって実行されます。外部の投稿者がアクションを開始する場合、そのマージ リクエストで所有者または共同編集者が /gcbrun にコメントした後にのみビルドが実行されます。

        • 必須: 投稿者を問わずマージ リクエストが作成または更新されると、所有者または共同編集者がマージ リクエストに /gcbrun とコメントした後にのみビルドが実行されます。ビルドは、マージ リクエストが変更されるたびに実行されます。

        • 不要: 投稿者を問わずマージ リクエストが作成または更新されると、ビルドが自動的にトリガーで実行されます。

    • 構成: リポジトリにあるビルド構成ファイルを選択するか、トリガーでインライン ビルドを構成します。

    • タイプ: ビルドに使用する構成のタイプを選択します。

      • Cloud Build 構成ファイル(yaml または json): 構成にビルド構成ファイルを使用します。
      • Dockerfile: 構成には Dockerfile を使用します。
    • 場所: 構成の場所を指定します。

      • リポジトリ: 構成ファイルがリポジトリにある場合は、ビルド構成ファイルまたは Dockerfile ディレクトリの場所と生成されたイメージの名前を指定します。構成が Dockerfile の場合は、必要に応じてビルドのタイムアウトを指定できます。Dockerfile とイメージ名を指定すると、ビルドが実行される docker build コマンドのプレビューが表示されます。

      • インライン: 構成オプションとして Cloud Build 構成ファイル(yaml または json)を選択した場合、インライン ビルド構成を指定できます。Google Cloud Console で [エディタを開く] をクリックして、YAML または JSON 構文でビルド構成ファイルを書き込みます。[完了] をクリックしてビルド構成ファイルを保存します。

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

gcloud

gcloud コマンドを使用して GitLab トリガーを作成するには、次のコマンドを実行します。

gcloud builds triggers create gitlab \
  --name=TRIGGER_NAME \
  --repository=projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/repositories/REPO_NAME \
  --branch-pattern=BRANCH_PATTERN # or --tag-pattern=TAG_PATTERN \
  --build-config=BUILD_CONFIG_FILE \
  --region=REGION

ここで

  • TRIGGER_NAME はトリガーの名前です。
  • PROJECT_ID はユーザーの Google Cloud プロジェクト ID です。
  • REGION はトリガーのリージョンです。
  • CONNECTION_NAME は GitLab 接続の名前です。
  • REPO_NAME はリポジトリの名前です
  • BRANCH_PATTERN は、ビルドを呼び出すリポジトリ内のブランチ名です。
  • TAG_PATTERN は、ビルドを呼び出すリポジトリ内のタグ名です。
  • BUILD_CONFIG_FILE はビルド構成ファイルのパスです。

データ共有

Cloud Build から GitLab に送信されたデータは、トリガーを名前で識別し、GitLab リポジトリでビルドの結果を確認する際に役立ちます。

現在、次のデータは Cloud Build と GitLab ホストの間で共有されています。

  • Google Cloud プロジェクト ID
  • トリガーの名前

次のステップ