管理建構依附元件

本頁說明如何指定建構依附元件。Cloud Build 可讓您分別管理原始碼依附元件和建構程序。

在建構設定檔中,您可以列出要為建構複製的一或多個存放區,以及擷取順序。以這種方式指定依附元件,可將依附元件擷取作業與建構程序本身分開。

如果建構設定檔中未納入任何依附元件,Cloud Build 會複製包含建構設定檔的程式碼存放區 (適用於觸發的建構作業),或是包含原始碼的程式碼存放區 (適用於從指令列叫用的建構作業)。如果建構設定檔中包含依附元件,Cloud Build 只會複製 dependencies 欄位中指定的存放區。

依附元件會按照您指定的順序複製。此外,系統會在執行任何使用者指定的邏輯前,先擷取依附元件。因此,系統會信任依附元件擷取作業。

依附元件會顯示在「Build details」(建構詳細資料) 頁面的「Build dependencies」(建構依附元件) 分頁中。

事前準備

本頁的操作說明假設您至少有下列其中一種存放區類型:

  • Git 存放區 (公開存放區或使用 Developer Connect連結至 Cloud Build 的存放區)。

  • 一般存放區

如要確保 具備將 Developer Connect 存放區新增為依附元件的必要權限,請要求系統管理員在服務帳戶中,將 Developer Connect 讀取權杖存取者 (developerconnect.readTokenAccessor) IAM 角色授予 。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

管理員或許也能透過自訂角色或其他預先定義的角色,授予必要權限。

指定依附元件

如要指定依附元件,請在建構設定檔中新增 dependencies 欄位。dependencies 是建構設定中的頂層屬性,但您可以將其放在檔案中的任何位置。

指定 GitHub 依附元件

如要指定 GitHub 存放區的依附元件,請在建構設定檔中新增下列 dependencies 設定:

YAML

 dependencies:
 - gitSource:
     repository:
       url: 'URL'
       developerConnect: 'DC_RESOURCE_PATH'
     revision: 'REVISION'
     recurseSubmodules: 'true|false'
     depth: 'DEPTH'
     destPath: 'DEST_PATH'

JSON

 {
     "dependencies": {
         "gitSource": {
             "repository": {
                 "url": "URL"
                 "developerConnect": "DC_RESOURCE_PATH"
             },
             "revision": "REVISION",
             "recurseSubmodules": true|false,
             "depth": "DEPTH",
             "destPath": "DEST_PATH",
         },
     },
 }

替換下列值:

  • URL:要擷取的存放區 HTTPS 網址。如果存放區未透過 Developer Connect 連結至 Cloud Build,則此為必填欄位。

  • DC_RESOURCE_PATH:Developer Connect 存放區的 Google Cloud 資源路徑。例如:projects/my-project/locations/us-central1/connections/my-connection/gitRepositoryLinks/my-repo。如果存放區是透過 Developer Connect 連結至 Cloud Build,則此為必填欄位。

    如果存放區是透過 Developer Connect 連結,您需要下列項目:

  • REVISION:必填,要從存放區擷取的版本、提交雜湊、標記或分支名稱。

  • recurseSubmodules:'true|false':是否要擷取子模組。

  • DEPTH:(選用) 要擷取的存放區記錄深度。如未指定,系統會擷取最新提交內容。

    • 1:最新修訂版本
    • 2:最後兩次提交
    • 3:最後三次提交
    • -1:所有提交
  • DEST_PATH:必填,存放區複製到的目錄路徑。例如:my/repo

    設定 dest_path 時,系統會擷取 /workspace/<dest_path> 中的存放區。dest_path 值必須是相對於建構工作目錄的路徑。

將泛型構件指定為依附元件

如要將一般構件指定為依附元件,請在建構設定檔中新增下列 dependencies 設定:

YAML

dependencies:
- genericArtifact:
    resource: RESOURCE
    destPath: PATH

JSON

{
  "dependencies": [
    {
      "genericArtifact": {
        "resource": "RESOURCE",
        "destPath": "PATH"
      }
    }
  ]
}

其中:

  • RESOURCE 是 Artifact Registry 一般存放區中一般構件的完整位址,格式如下:

    projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/packages/PACKAGE/versions/VERSION

    強烈建議您在資源位址中加入構件的指紋,這樣 Cloud Build 就能驗證構件參照是否不可變動。附加指紋的套件版本格式如下:

    VERSION@dirsum_sha256=HASH_VALUE

    如要在 Artifact Registry 存放區中找出構件的指紋,請參閱「從存放區中擷取套件版本的指紋」。

  • PATH 是資料夾的位址,Cloud Build 會從存放區將套件下載至該資料夾。如果資料夾不存在,Cloud Build 會自動建立。

後續步驟