本頁說明如何指定建構依附元件。Cloud Build 可讓您分別管理原始碼依附元件和建構程序。
在建構設定檔中,您可以列出要為建構複製的一或多個存放區,以及擷取順序。以這種方式指定依附元件,可將依附元件擷取作業與建構程序本身分開。
如果建構設定檔中未納入任何依附元件,Cloud Build 會複製包含建構設定檔的程式碼存放區 (適用於觸發的建構作業),或是包含原始碼的程式碼存放區 (適用於從指令列叫用的建構作業)。如果建構設定檔中包含依附元件,Cloud Build 只會複製 dependencies 欄位中指定的存放區。
依附元件會按照您指定的順序複製。此外,系統會在執行任何使用者指定的邏輯前,先擷取依附元件。因此,系統會信任依附元件擷取作業。
依附元件會顯示在「Build details」(建構詳細資料) 頁面的「Build dependencies」(建構依附元件) 分頁中。
事前準備
本頁的操作說明假設您至少有下列其中一種存放區類型:
如要確保 具備將 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 連結,您需要下列項目:
- Cloud Build 服務帳戶必須具備
Developer Connect Read Token Accessor角色。
- Cloud Build 服務帳戶必須具備
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 會自動建立。