建構類型:Cloud Build v1 建構

本頁說明 Cloud Build 的建構類型

建構定義

外部參數

下表列出 Cloud Build 建構作業中可能使用的外部參數類型。外部參數是您指定的值,不會出現在建構設定中。這包括不在 cloudbuild.yaml 檔案中的觸發事件參數。

欄位 類型 詳細資料
buildConfigSource 物件 讀取建構設定的位置。

BuildTrigger 中,這會對應至觸發建構作業的來源存放區 (SCM 事件觸發的建構作業),或是所有其他觸發類型的 gitFileSource

將設定 buildConfigSourcebuildConfig (在內嵌建構設定檔的情況下)。
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 時才會有所不同。

如果 repositoryrefbuildConfigSource 相同,且 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_IDBUILD_ID

如果您覆寫其中一個 Cloud Build 預設替換項目,系統就不會在這裡顯示您的替換項目。您的值會改為列在 externalParameters.substitutions 中。

已解決的依附元件

如果建構作業含有來源存放區或建構設定存放區,存放區會在 BuildDefinitionresolvedDependencies 部分說明。

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
startedOnfinishedOn 欄位包含建構作業開始和完成的時間戳記。
副產品 尚未使用。設計用於包含非構建輸出的額外構件,但可能對排解問題或事件回應有所助益。
systemSubstitutions 在 Cloud Build 建構作業中,系統會自動提供部分預設替換值,例如 PROJECT_IDBUILD_ID

如果您覆寫其中一個 Cloud Build 預設替換項目,系統就不會在這裡顯示您的替換項目。您的值會改為列在 externalParameters.substitutions 中。