使用 Cloud Build 自動化版本

本主題說明如何使用 Cloud Build 與 Cloud Source Repositories 自動化版本。

您可以設定 Cloud Build 在使用者推送變更到儲存於 Cloud Source Repositories 的檔案時自動建構新映像檔。啟動自動版本的事件稱為版本觸發條件。這些觸發條件可確保您的容器映像檔保持在最新狀態。您也可以使用這些觸發條件建構與測試功能分支。

事前準備

除了這些先決條件,您可能需要以下資訊:

  • 版本觸發條件使用存放區的「淺複製」。若使用淺複製,則只有觸發版本的單次修訂版本會在要建構的工作區中查看。如需詳細資訊,以及瞭解如何包含更多存放區歷史記錄,請參閱取消淺複製

  • 如果您使用另一個代管 Git 供應商 (例如 GitHub 或 Bitbucket),而您尚未將存放區完全複製到 Cloud Source Repositories,則針對您正在作業的 Google Cloud Platform 專案,您必須擁有 cloudbuilds.builds.create 權限。此權限通常透過 cloudbuild.builds.editor 角色授予。

    初次使用外部存放區設定版本觸發條件時,您需要設定該存放區的授權。詳情請參閱將存放區新增為遠端存放區

    設定外部存放區之後,Cloud Source Repositories 會建立存放區的鏡像。

  • 如要瞭解 Cloud Build 的配額與限制,請參閱 Cloud Build 說明文件中的配額與限制

建立版本觸發條件

建立新的版本觸發條件

  1. 在 Google Cloud Platform 主控台開啟「版本觸發條件」頁面。

    開啟「版本觸發條件」頁面

  2. 選取您的專案並按一下 [Open] (開啟)

  3. 按一下 [Create trigger] (建立觸發條件)

  4. 選取 [Cloud Source Repository]

  5. 按一下 [Continue] (繼續)

  6. 從可用存放區清單中選取所需存放區,然後按一下 [Continue] (繼續)

  7. 輸入下列觸發條件設定:

    • 觸發條件名稱:觸發條件的選填名稱。
    • 觸發條件類型:您可以設定觸發條件對特定「分支版本」的修訂啟動版本,或對包含特定「標記」的修訂啟動版本。無論哪一種情況,您都可以指定要比對的分支版本或標記值的規則運算式。
    • 版本設定Dockerfile 或版本設定檔 (位於遠端存放區),可用於啟動觸發條件的每個版本。

使用 Dockerfile

如果您的版本設定要使用 Dockerfile,您需要指定 Dockerfile 目錄,並為產生的映像檔提供名稱。

提供 Dockerfile 與映像檔名稱之後,您會看見版本將會執行的 docker build 指令預覽以及觸發條件設定的摘要。按一下 [Create trigger] (建立觸發條件) 即可儲存版本觸發條件。

使用版本設定檔

如果您的版本設定要使用版本設定檔,您需要提供版本設定檔的位置。

設定位置之後,您會看見觸發條件的摘要。按一下 [Create trigger] (建立觸發條件) 即可儲存版本觸發條件。

測試版本觸發條件

如要手動測試版本觸發條件,請在觸發條件清單中的觸發條件項目上按一下 [執行觸發條件]

略過版本觸發條件

在某些情況下,您可能會想要變更原始碼,但不想觸發版本。例如,當您更新說明文件或設定檔時,可能並不想觸發版本。

在此類情境下,可以在修訂訊息中加入 [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]

如果您想要稍後在該修訂版本上執行版本,請使用 [Run trigger] (執行觸發條件) 按鈕。

取消淺複製

為了在 Git 存放區建構原始碼,Cloud Build 會執行存放區的淺複製。這表示只會在要建構的工作區中查看觸發版本的單次修訂版本。Cloud Source Repositories 不會查看其他任何分支版本或歷史記錄。這麼做的目的是為了提高效率,讓版本無須只是為了建構單次修訂版本就花時間等待擷取完整存放區與記錄。

如果您要在版本中包含更多存放區記錄,請在您的版本設定檔中加入建構步驟以「取消淺複製」。例如:

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

如要進一步瞭解 git fetch,請參閱 git 參考資料。如需編寫版本設定檔的操作說明,請參閱版本設定總覽

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Source Repositories