Google Cloud Container Builder步骤间数据共享及短Commit SHA复用问询
2. 如何获取短Git提交哈希并在后续步骤中复用?
你的思路完全可行,这里有两种简洁的实现方式,帮你把短提交哈希存入变量并在后续步骤使用:
方式一:直接引用步骤输出(推荐)
Cloud Build支持用$(steps.<步骤ID>.outputs.stdout)语法,直接调用指定步骤的标准输出,不需要额外文件操作:
steps: # 第一步:获取短Git哈希,设置ID方便后续引用 - name: 'gcr.io/cloud-builders/git' args: ['rev-parse', '--short', 'HEAD'] id: 'get-short-sha' # 第二步:在Docker构建中传递哈希作为构建参数 - name: 'gcr.io/cloud-builders/docker' args: [ 'build', '-t', 'gcr.io/$PROJECT_ID/your-image', '--build-arg', "COMMIT_SHA_SHORT=$(steps.get-short-sha.outputs.stdout)", '.' ] # 第三步:在其他步骤直接使用哈希值(比如打印验证) - name: 'gcr.io/cloud-builders/bash' args: ['-c', 'echo "当前构建的短提交哈希: $(steps.get-short-sha.outputs.stdout)"']
方式二:通过工作区文件传递
如果需要对哈希值做中间处理,也可以把它写入/workspace下的文件,后续步骤读取:
steps: # 第一步:将短哈希写入文件 - name: 'gcr.io/cloud-builders/git' entrypoint: 'bash' args: ['-c', 'git rev-parse --short HEAD > /workspace/short-sha.txt'] # 第二步:读取文件内容并用于Docker构建 - name: 'gcr.io/cloud-builders/docker' args: [ 'build', '-t', 'gcr.io/$PROJECT_ID/your-image', '--build-arg', "COMMIT_SHA_SHORT=$(cat /workspace/short-sha.txt)", '.' ]
两种方式都能满足需求,方式一更简洁,适合传递简单字符串;方式二更灵活,适合需要对数据做修改的场景。
内容的提问来源于stack exchange,提问作者pjotr_dolphin
相关产品推荐
相关产品推荐

