如何从不同的存储库链接cloudbuild.yaml(Google Cloud Build触发器)

时间:2019-12-11 09:39:58

标签: google-app-engine google-cloud-platform google-cloud-build

基本上,我想将我的cloudbuild.yaml从测试环境链接到开发环境。

每当我提交测试环境时,都会有一个触发器,我的测试会运行并生成报告(按Yaml)。大。

但是我想在开发环境提交时创建一个触发器,我的测试从我的测试存储库中运行并创建报告。

1 个答案:

答案 0 :(得分:1)

您有2种解决方案。

首先,您可以下载测试项目并从开发构建的当前执行中运行Cloud Build

steps:
- name: gcr.io/cloud-builders/git
  args: ['clone', 'https://myrepo.com/testing']
- name: gcr.io/cloud-builders/gcloud
  args: ["builds", "submit"]
  dir: "testing"   # I assume that the git clone has created the testing directory

该解决方案的优势在于,如果您的Cloud Build on Test项目失败,您可以同步知道它,并且可以在当前Dev开发中对此做出反应

对应的是在测试构建期间重复了处理时间。实际上,已经执行了测试构建,并且开发测试继续(甚至处于待机状态)以等待测试构建结束。您还需要正确设置Cloud Build超时。


第二个解决方案是一个API调用,用于手动触发您的测试Cloud Build触发器。

为此,您需要使用以下命令自定义步骤波纹管

  • 测试项目ID
  • 触发器UUID。单击触发器进行编辑时,可以在页面URL中找到它。

enter image description here

如果需要,您也可以更改branchName

steps:
  - name: 'gcr.io/cloud-builders/gcloud'
    entrypoint: 'bash'
    args:
      - '-c'
      - |
             curl -d '{"branchName":"master"}' -X POST -H "Content-type: application/json" -H "Authorization: Bearer $(gcloud config config-helper --format='value(credential.access_token)')" https://cloudbuild.googleapis.com/v1/projects/<PROJECT_TEST_ID>/triggers/<TRIGGER_UUID>:run

在这里,您不必等待构建结束,并且可以节省Cloud Build的持续时间(和金钱),但是在构建失败的情况下您将无法做出反应。