Neb*_*tic 13
第一个选项是创建一个调度来触发构建:
gcloud scheduler jobs create http ${PROJECT_ID}-run-trigger \
--schedule='0 12 * * *' \
--uri=https://cloudbuild.googleapis.com/v1/projects/${PROJECT_ID}/triggers/${TRIGGER_ID}:run \
--message-body='{\"branchName\": \"${BRANCH_NAME}\"}' \
--oauth-service-account-email=${PROJECT_ID}@appspot.gserviceaccount.com \
--oauth-token-scope=https://www.googleapis.com/auth/cloud-platform
Run Code Online (Sandbox Code Playgroud)
请注意,您几乎可以从云构建中运行它。PROJECT_ID 是项目名称,BRANCH_NAME 是分支名称(development、master 等)。两者都可以从您的云构建管道中获得。可以使用以下命令获取 TRIGGER_ID:
gcloud beta builds triggers list --format json
Run Code Online (Sandbox Code Playgroud)
除了branchName,您还可以在消息正文中指定其他属性,为您提供更大的灵活性:
第二种选择是按计划提交 cloudbuild:
gcloud scheduler jobs create http ${PROJECT_ID}-run-build \
--schedule='0 12 * * *' \
--uri=https://cloudbuild.googleapis.com/v1/projects/${PROJECT_ID}/builds \
--message-body-from-file=cloudbuild.json \
--message-body="{\"branchName\": \"${BRANCH_NAME}\"} \
--oauth-service-account-email=${PROJECT_ID}@appspot.gserviceaccount.com \
--oauth-token-scope=https://www.googleapis.com/auth/cloud-platform
Run Code Online (Sandbox Code Playgroud)
您的 cloudbuild.json 可能如下所示:
{
"timeout": "60s",
"steps": [
{
"name": "gcr.io/cloud-builders/gcloud",
"entrypoint": "bash",
"args": [
"-c",
"echo "Hello"
]
},
{
"name": "gcr.io/cloud-builders/gcloud",
"entrypoint": "bash",
"args": [
"-c",
"echo "World"
]
}
],
"substitutions": {
"BRANCH_NAME": "$BRANCH_NAME"
}
}
Run Code Online (Sandbox Code Playgroud)
在 Cloud Scheduler 中,我们对项目的构建触发器执行 HTTP 请求:https : //cloud.google.com/cloud-build/docs/api/reference/rest/v1/projects.triggers/run
对于身份验证,我们使用服务帐户。
| 归档时间: |
|
| 查看次数: |
2545 次 |
| 最近记录: |