如何在Google Cloud Build的FETCHSOURCE步骤中设置git init.defaultBranch?
解决Google Cloud Build FETCHSOURCE步骤的git分支提示问题
默认情况下,Cloud Build会先执行FETCHSOURCE步骤,再运行你定义的自定义steps,所以你之前添加的git配置步骤无法影响FETCHSOURCE阶段的git行为。要消除该提示,你需要手动覆盖FETCHSOURCE的逻辑,先配置git再拉取代码:
方案1:基础手动拉取(替代默认FETCHSOURCE)
steps: # 先配置git全局默认分支 - name: 'gcr.io/cloud-builders/git' entrypoint: 'bash' args: - '-c' - | git config --global init.defaultBranch main # 手动执行源码拉取,完成原FETCHSOURCE的核心工作 - name: 'gcr.io/cloud-builders/git' args: - 'clone' - '--depth=1' - '$REPO_URL' - '.' # 后续构建步骤示例 - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/$PROJECT_ID/your-image', '.']
方案2:复刻完整FETCHSOURCE行为
如果需要保留默认FETCHSOURCE拉取特定分支、指定提交哈希的逻辑,可以借助Cloud Build内置替代变量完善命令:
steps: - name: 'gcr.io/cloud-builders/git' entrypoint: 'bash' args: - '-c' - | git config --global init.defaultBranch main git clone --depth=1 --branch=$BRANCH_NAME $REPO_URL . git checkout $COMMIT_SHA # 后续构建步骤...
内置替代变量说明:
$REPO_URL:当前构建触发的仓库地址$BRANCH_NAME:触发构建的分支名$COMMIT_SHA:触发构建的提交哈希
内容的提问来源于stack exchange,提问作者Anthony Metzidis
相关产品推荐
相关产品推荐

