Cloudbuild - 如何设置变量,循环多个路径(文件夹)

Cloudbuild - how to set a variable, looping multiples paths (folders)

我正在尝试使用 cloudbuild 配置变量 _PATH。我的 github 存储库中有多个路径(文件夹)和 tf 文件,并且希望 terraform 识别当前对任何文件夹所做的任何更改以推送和触发。

我想知道是否有任何方法可以在触发器选项上循环以“逗号”分隔的值,然后在 bash 脚本中使用“for”..,或者可能存在另一种更好的方法还不太清楚,

感谢您的帮助!

code cloudbuild

cloudbuild sample

遗憾的是,我还没有找到在 cloudbuild.yaml 级别设置变量的方法。

注意 CloudBuild 最初称为 Cloud Container Builder,这就是它与其他 CI/CD 工具不同的原因。

我认为可能还有另一种方法可以获得您想要的行为:

  1. 在脚本中实现 bash looping logic(即 sh/run_terraform_applys.sh),并在您的存储库中为其创建一个 Docker 文件:
FROM hashicorp/terraform:1.0.0

WORKDIR /workspace

COPY sh/                           /workspace/sh/
COPY requirements.txt              /workspace/
RUN pip install -r requirements.txt
RUN . sh/run_terraform_applys.sh

COPY .                            /workspace/
RUN . sh/other_stuff_to_do.sh
  1. 使用 cloud-builders 图像构建您的图像,因此 docker build 将 运行 sh/run_terraform_applys.sh 包含在 Docker 图像中(您可以 push 你的图像到 GCR 允许 layer-caching):
  - name: 'gcr.io/cloud-builders/docker'
    entrypoint: 'bash'
    args: 
      - '-c'
      - |-
        # Build Dockerfile
        docker build -t ${MY_GCR_CACHE}  --cache-from ${MY_GCR_CACHE} -f cicd/Dockerfile .
        docker push ${MY_GCR_CACHE}
    id: 'Run Terraform Apply'
    waitFor: ['-']