问题描述
由于某种原因,由代码存储库的更改触发的每个成功构建都有另一个“关联”构建。 (失败的构建不会“引起” /触发这个额外的构建。)请参见附件图像。
第二个构建没有源,引用,提交或触发器。查看构建日志,它由以下步骤组成(也许可以提示其功能):
Step #0 - "fetcher"
Step #1 - "prep"
Step #2 - "detector"
Step #3 - "analyzer"
Step #4 - "restorer"
Step #5 - "builder"
Step #6 - "exporter"
Step #7 - "deployment-tag"
你知道是什么原因造成的吗?
云构建
steps:
- name: node:12.18.1
id: 'install root packages'
entrypoint: npm
args: ['install']
- name: node:12.18.1
id: 'install packages for specific project'
entrypoint: npm
args: ['install']
dir: packages/${_SERVICE_NAME}
- name: node:12.18.1
id: 'getting environment variables'
entrypoint: npm
args: ['run-script','getenv:${_STAGE}']
env:
- 'AWS_ACCESS_KEY_ID=${_AWS_ACCESS_KEY_ID}'
- 'AWS_SECRET_ACCESS_KEY=${_AWS_SECRET_ACCESS_KEY}'
dir: packages/${_SERVICE_NAME}
- name: node:12.18.1
id: 'build'
entrypoint: npm
args: ['run-script','build']
dir: packages/${_SERVICE_NAME}
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk:slim'
id: 'deploy'
entrypoint: 'gcloud'
args: ['app','deploy','app.yaml']
dir: packages/${_SERVICE_NAME}
timeout: '3600s'
触发器 每个程序包都有两个触发器,除了一些自定义变量外,它们都相同。
解决方法
是不是其中任何一个构建步骤都会触发随后进行构建(例如步骤builder
)?
常识可能表明,如果它没有提交ID,则可能不是由存储库更改触发的。通过从最后一步开始逐一注释掉构建步骤,可以轻松地测试这一点。到达builder
为止(或可能执行其他步骤)时,它应该再没有提交ID的情况下也不触发构建。
取决于后续构建的工作,您可能可以使用--cache-from
。
当输出每次更改时,这显然是没有用的。
但如果没有,可能会导致大约缩短1:30
的构建时间。