google-cloud-platform - 使用 Google Cloud Scheduler 定期触发 Google Cloud Build

标签 google-cloud-platform google-cloud-build google-cloud-scheduler

是否有可能触发 Google Cloud BuildGoogle 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 :
  • commitSha
  • 目录
  • 反转正则表达式
  • 项目 ID
  • repo 名称
  • 换人
  • 标签名

  • 第二个选项是按计划提交 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/

    相关文章:

    google-app-engine - *.appspot.com 存储桶被误删除,如何恢复?

    google-cloud-platform - 如何通过 GCP 部署管理器更新机器类型属性

    mysql - 带有 JdbcIO 编写器的 ApacheBeam/DataFlow runner 创建了太多连接

    google-cloud-platform - 在构建触发器上使用 base64 编码的值时,cloudbuil.yaml 不会解码

    google-cloud-platform - 如何在 cloudbuild.yaml 中为云运行指定自定义 service.yaml?

    typescript - 如何使用Firebase模拟器pubsub在本地测试定时功能?

    python - 使用 Airflow 将文件从本地系统上传到 Google Bucket - Python

    java - 如何解决 java.lang.NoClassDefFoundError

    google-cloud-build - Google Cloud Build - Github 触发器 - 过滤文件不起作用

    node.js - 如何在云函数内联编辑器中使用 Firebase 计划函数?