是否有可能触发 Google Cloud Build与 Google Cloud Scheduler定期?
我在互联网上找不到任何与它相关的东西。
最佳答案
第一个选项是创建一个计划来触发构建:
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
请注意,您几乎可以在云构建中运行它。 PROJECT_ID 是项目的名称,BRANCH_NAME 是分支的名称(开发、主等)。两者都可以在您的云构建管道中使用。可以使用以下命令获取 TRIGGER_ID:gcloud beta builds triggers list --format json
附加到 branchName
,您还可以在消息正文中指定其他属性,给您更大的灵 active :第二个选项是按计划提交 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
您的 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"
}
}
关于google-cloud-platform - 使用 Google Cloud Scheduler 定期触发 Google Cloud Build,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57681367/