本頁說明 Cloud Build 的建構類型。
建構定義
外部參數
下表列出 Cloud Build 建構作業中可能使用的外部參數類型。外部參數是您指定的值,不會出現在建構設定中。這包括不在 cloudbuild.yaml
檔案中的觸發事件參數。
欄位 | 類型 | 詳細資料 |
---|---|---|
buildConfigSource | 物件 | 讀取建構設定的位置。 在 BuildTrigger 中,這會對應至觸發建構作業的來源存放區 (SCM 事件觸發的建構作業),或是所有其他觸發類型的 gitFileSource 。將設定 buildConfigSource 或 buildConfig (在內嵌建構設定檔的情況下)。 |
buildConfigSource.ref | 字串 | buildConfigSource.repository 中的 Git 參照,用於讀取設定,可做為完整合格的 git 參照 (以 refs/ 開頭) 或修訂版本 SHA (小寫的 16 進位值)。只有在觸發事件中指定時,才會使用 SHA 提交。 |
buildConfigSource.repository | 字串 | 包含建構設定檔的 git 存放區 HTTPS URI,使用 https:// 通訊協定。這個值會加上 git+ 前置字串,以便與 SPDX 格式相容。如要進一步瞭解格式規定,請參閱 ResourceURI。 |
buildConfigSource.path | 字串 | 提交內容中建構設定檔的路徑。範例:
cloudbuild.yaml pathAutodetect 互斥。其中恰好有一欄必須設為非預設值。 |
buildConfigSource.pathAutoDetect | 布林值 | 如果為 true,表示系統已自動偵測 path ,對應於 BuildTrigger 中的 autodetect 選項。系統會將 False 視為未設定;如果未啟用自動偵測功能,Cloud Build 會改用 path 。與 path 互斥。其中恰好有一個欄位必須設為非預設值。 |
sourceToBuild | 物件 | 已簽出及建構的原始碼。通常這會與 buildConfigSource 相同;只有在 BuildTrigger 已設定 gitFileSource 時才會有所不同。如果 repository 和 ref 與 buildConfigSource 相同,且 dir 為空白,則這個欄位不存在。在 BuildTrigger 中,這會對應至 sourceToBuild 或觸發版本的提交,具體取決於觸發條件類型。 |
sourceToBuild.ref | 字串 | 已簽出的 sourceToBuild.repository 中的 Git 參照,可做為完整修飾的 Git 參照 (開頭為 refs/ ) 或 SHA 修訂版本 (小寫的 16 進位值)。只有在觸發事件中指定時,系統才會使用修訂版本 SHA。 |
sourceToBuild.repository | 字串 | 已簽出的 Git 存放區的 HTTPS URI,以及 https:// 通訊協定。前面會加上 git+ 。 |
sourceToBuild.dir | 字串 | 要執行建構作業的版本內目錄,不含尾端斜線。可留空,未設定。 |
buildConfig | 字串 | 提供內嵌建構設定時 (例如在手動提交的版本中),系統會記錄下列資訊。 - 步驟 - 建構選項 (例如環境變數、磁碟區、工作站集區詳細資料、machineType、記錄詳細資料) - 替代項目 如果建構設定是由存放區讀取,則會記錄在 buildConfigSource 部分,並省略內嵌建構設定。這項資訊會以 base64 編碼序列化的 JSON 字串形式儲存。 |
substitutions | map<string,string></string,string> | 字串 -> 字串的對應項目,其中包含要在 Build 資源上執行的替換項目。 這個值只包含未在建構設定中記錄的「執行階段」或「獨立」替代值,也就是從觸發條件或 gcloud CLI 標記傳入的值。 這個記錄不包含系統提供的預設替換值,因為系統會將這些值視為 internalParameters 。無論是否在建構設定中參照或使用,這個欄位都會顯示替換項目。 |
內部參數
下表顯示 Cloud Build 為建構作業設定的內部參數 (除非您覆寫這些參數)。詳情請參閱「預設替換值」。
欄位 | 詳細資料 |
---|---|
triggerUri | 觸發此建構作業的觸發事件資源 URI,在本例中為完整資源名稱。 如果未觸發建構作業,則會省略這項作業。 |
systemSubstitutions | 在 Cloud Build 建構作業中,會自動提供部分預設替換值,例如 PROJECT_ID 、BUILD_ID 。如果您覆寫其中一個 Cloud Build 預設替換項目,系統就不會在這裡顯示您的替換項目。您的值會改為列在 externalParameters.substitutions 中。 |
已解決的依附元件
如果建構作業含有來源存放區或建構設定存放區,存放區會在 BuildDefinition
的 resolvedDependencies
部分說明。
ResolvedDependencies
符合 ResourceDescriptor
規格。
依附元件類型 |
詳細資料 |
---|---|
建構設定存放區 |
在觸發建構作業的情況下,從中擷取建構設定 (即 cloudbuild.yaml ) 的存放區。如果建構設定並非從存放區讀取,而是內嵌提供,則這個值可能會為空白,並且會略過。 |
原始碼存放區 |
建構作業所使用的原始碼來源存放區。可以與 buildConfigSource 相同,也可以不同。如果與 buildConfigSource 相同,則會省略 sourceToBuild ,例如在 SCM 觸發的版本中。如果建構作業是透過 –no-source 執行,sourceToBuild 可能會空白,並且會省略。 |
舉例來說,下列 resolvedDependencies
資訊包含 buildConfigRepo 和 sourceRepo (兩者相同),以及建構步驟圖片。
"resolvedDependencies": [
{
"uri": "git+https://github.com/octocat/hello-world.git",
"digest": {"sha1": "7fd1a60b01f91b314f59955a4e4d4e80d8edf11d"}
}, {
"uri": "gcr.io/cloud-builders/git",
"digest": {
"sha256": "28ff94e63e4058afc3f15b4c11c08cf3b54fa91faa646a4bba7158df"}
}
]
RunDetails
欄位 | 詳細資料 |
---|---|
建構工具 | 包含 id 子欄位,用於識別執行作業並填入此來源的建構平台。這也包含 SLSA 等級。預期的 id 值為 https://cloudbuild.googleapis.com/GoogleHostedWorker 。 |
中繼資料 | 這個特定版本執行作業的其他中繼資料。
invocationId 會顯示建構作業的網址,例如 https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/builds/BUILD_ID 。startedOn 和 finishedOn 欄位包含建構作業開始和完成的時間戳記。 |
副產品 | 尚未使用。設計用於包含非構建輸出的額外構件,但可能對排解問題或事件回應有所助益。 |
systemSubstitutions | 在 Cloud Build 建構作業中,系統會自動提供部分預設替換值,例如 PROJECT_ID 、BUILD_ID 。如果您覆寫其中一個 Cloud Build 預設替換項目,系統就不會在這裡顯示您的替換項目。您的值會改為列在 externalParameters.substitutions 中。 |