在Google Cloud build中,为什么我的构建历史记录中还有一个额外的构建

问题描述

由于某种原因,由代​​码存储库的更改触发的每个成功构建都有另一个“关联”构建。 (失败的构建不会“引起” /触发这个额外的构建。)请参见附件图像。

第二个构建没有源,引用,提交或触发器。查看构建日志,它由以下步骤组成(也许可以提示功能):

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"

build history

你知道是什么原因造成的吗?

云构建

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'

触发器 每个程序包都有两个触发器,除了一些自定义变量外,它们都相同。

Trigger

解决方法

是不是其中任何一个构建步骤都会触发随后进行构建(例如步骤builder)?

常识可能表明,如果它没有提交ID,则可能不是由存储库更改触发的。通过从最后一步开始逐一注释掉构建步骤,可以轻松地测试这一点。到达builder为止(或可能执行其他步骤)时,它应该再没有提交ID的情况下也不触发构建。

取决于后续构建的工作,您可能可以使用--cache-from
当输出每次更改时,这显然是没有用的。
但如果没有,可能会导致大约缩短1:30的构建时间。