使用 Google Cloud Build 在 Merge 上部署,而不是在 Pull Request 上部署

Deploying on Merge, not on Pull Request with Google Cloud Build

我有一个 cloudbuild.yaml 文件,其中包含部署步骤(运行良好),但是我不想在拉取请求上执行这些步骤,只是合并到特定分支。如何让 cloudbuild 区分拉取请求和合并?

我想我找到了一个有点老套的解决方案。在 cloudbuild.yaml 我添加了以下内容:

substitutions:
    _DEPLOY: '0'

并且在 cloudbuild 控制台中,我将 _DEPLOY 替换添加为“1”。然后在我的构建步骤中,我可以像这样检查 _DEPLOY 标志:

- name: 'gcr.io/cloud-builders/gsutil'
  entrypoint: 'bash'
  args:
      - '-c'
      - |
        if [ "${_DEPLOY}" -eq "1" ]; then echo 'hooray'; fi

_DEPLOY 标志在推送到我的分支时设置,但在 github 集成(例如 PR)期间不会设置。