如何通过cli / rest api / cloud函数运行Google Cloud Build触发器?

chr*_*riz 6 google-cloud-platform google-cloud-functions google-cloud-build

有这样的选择吗?我的用例将运行生产构建的触发器(部署到生产)。理想情况下,该触发器不需要侦听任何更改,因为它是通过chatbot手动调用的。

我看到了针对混合和多云客户(Cloud Next '18)的视频CI / CD,其中宣布了对API触发器的支持,我不确定这是否是我所需要的。

Man*_*ran 7

几天前我做了同样的事情。

您可以使用 gcloud 和 rest api 提交您的构建

云:

gcloud builds submit --no-source  --config=cloudbuild.yaml --async --format=json
Run Code Online (Sandbox Code Playgroud)

休息API:

将带有身份验证令牌的 JSON 格式的 cloudbuild.yaml 发送到此 url https://cloudbuild.googleapis.com/v1/projects/standf-188123/builds?alt=json

示例 cloudbuild.yaml:

steps:

- name: 'gcr.io/cloud-builders/docker'
  id: Docker Version
  args: ["version"]

- name: 'alpine'
  id:  Hello Cloud Build
  args: ["echo", "Hello Cloud Build"]
Run Code Online (Sandbox Code Playgroud)

示例rest_json_body:

{"steps": [{"args": ["version"], "id": "Docker Version", "name": "gcr.io/cloud-builders/docker"}, {"args": ["echo", "Hello Cloud Build"], "id": "Hello Cloud Build", "name": "alpine"}]}
Run Code Online (Sandbox Code Playgroud)


Chr*_*ski 5

现在这似乎可以通过 API 实现:

https://cloud.google.com/cloud-build/docs/api/reference/rest/v1/projects.triggers/run

请求.json:

{
  "projectId": "*****",
  "commitSha": "************"
}
Run Code Online (Sandbox Code Playgroud)

卷曲请求(使用命令gcloud):

PROJECT_ID="********" TRIGGER_ID="*******************"; curl -X POST -T request.json -H "Authorization: Bearer $(gcloud config config-helper \
    --format='value(credential.access_token)')" \
    https://cloudbuild.googleapis.com/v1/projects/"$PROJECT_ID"/triggers/"$TRIGGER_ID":run
Run Code Online (Sandbox Code Playgroud)

  • 更好的是,链接文档页面上的“尝试此 API”UI 可让您直接运行它,无需在终端中设置所有内容! (2认同)