基本上,我想将我的cloudbuild.yaml
从测试环境链接到开发环境。
每当我提交测试环境时,都会有一个触发器,我的测试会运行并生成报告(按Yaml)。大。
但是我想在开发环境提交时创建一个触发器,我的测试从我的测试存储库中运行并创建报告。
答案 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触发器。
为此,您需要使用以下命令自定义步骤波纹管
:如果需要,您也可以更改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的持续时间(和金钱),但是在构建失败的情况下您将无法做出反应。