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 工具不同的原因。
我认为可能还有另一种方法可以获得您想要的行为:
- 在脚本中实现
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
- 使用 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: ['-']
我正在尝试使用 cloudbuild 配置变量 _PATH。我的 github 存储库中有多个路径(文件夹)和 tf 文件,并且希望 terraform 识别当前对任何文件夹所做的任何更改以推送和触发。
我想知道是否有任何方法可以在触发器选项上循环以“逗号”分隔的值,然后在 bash 脚本中使用“for”..,或者可能存在另一种更好的方法还不太清楚,
感谢您的帮助!
code cloudbuild
cloudbuild sample
遗憾的是,我还没有找到在 cloudbuild.yaml
级别设置变量的方法。
注意 CloudBuild
最初称为 Cloud Container Builder
,这就是它与其他 CI/CD 工具不同的原因。
我认为可能还有另一种方法可以获得您想要的行为:
- 在脚本中实现
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
- 使用 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: ['-']