如何将日期参数传递给我的 cloudbuild yaml
How to pass date arg to my cloudbuild yaml
我的 cloudbuild.yaml
存在以下内容:
- name: 'gcr.io/cloud-builders/gsutil'
args: ['-m', 'cp', '-r', '/workspace/api-testing/target/cucumber-html-reports', 'gs://testing-reports/$BUILD_ID']
- name: 'gcr.io/cloud-builders/gsutil'
args: ['-m', 'rm', '-r', 'gs://studio360-testing-reports/latest']
- name: 'gcr.io/cloud-builders/gsutil'
args: ['-m', 'cp', '-r', '/workspace/api-testing/target/cucumber-html-reports', 'gs://testing-reports/latest']
这样我就可以将最新的报告与旧的报告分开。但是我可以将 {date} arg 或其他内容传递到我的第一行,以便我可以看到所有旧报告的视觉顺序吗?
(因为在 gcp storage/bucket 中无法按上次修改对文件进行排名)
谢谢
很确定你应该能够 bash 出去做这样的事情:
- name: 'gcr.io/cloud-builders/gsutil'
entrypoint: 'bash'
args:
- -c
- |
gsutil -m cp -r /workspace/api-testing/target/cucumber-html-reports gs://testing-reports/$BUILD_ID-$(date +%m-%d-%Y)
据我所知,您不能在 sub 中 运行 系统命令。变量或环境。变量。 (或者至少我还没弄清楚怎么做)
将第一个块更改为:
- name: 'gcr.io/cloud-builders/gsutil'
args: ['-m', 'cp', '-r', '/workspace/api-testing/target/cucumber-html-reports', 'gs://testing-reports/${_DATE}_$BUILD_ID']
然后运行这个:
gcloud builds submit . --substitutions _DATE=$(date +%F_%H:%M:%S)
那么你的桶里就会有这样的东西:
gs://testing-reports/2020-02-13_14:01:40_8a6a7ed0-62e0-43ed-8f97-aa6eca9c2834
编辑:
对于由 Cloud Build 触发器启动的自动构建,请使用此 cloudbuild.yaml
:
steps:
- name: 'gcr.io/cloud-builders/gsutil'
entrypoint: 'bash'
args:
- '-c'
- |
gsutil -m cp -r $FILENAME gs://$BUCKET/$FILENAME-$(date +%F_%H:%M:%S)-$BUILD_ID
这允许构建器使用bash
执行gsutil
,因此bash
命令“date
”可以在命令内部使用
Googler here, and info about entrypoint here.
对语法的很好解释
我的 cloudbuild.yaml
存在以下内容:
- name: 'gcr.io/cloud-builders/gsutil'
args: ['-m', 'cp', '-r', '/workspace/api-testing/target/cucumber-html-reports', 'gs://testing-reports/$BUILD_ID']
- name: 'gcr.io/cloud-builders/gsutil'
args: ['-m', 'rm', '-r', 'gs://studio360-testing-reports/latest']
- name: 'gcr.io/cloud-builders/gsutil'
args: ['-m', 'cp', '-r', '/workspace/api-testing/target/cucumber-html-reports', 'gs://testing-reports/latest']
这样我就可以将最新的报告与旧的报告分开。但是我可以将 {date} arg 或其他内容传递到我的第一行,以便我可以看到所有旧报告的视觉顺序吗?
(因为在 gcp storage/bucket 中无法按上次修改对文件进行排名)
谢谢
很确定你应该能够 bash 出去做这样的事情:
- name: 'gcr.io/cloud-builders/gsutil'
entrypoint: 'bash'
args:
- -c
- |
gsutil -m cp -r /workspace/api-testing/target/cucumber-html-reports gs://testing-reports/$BUILD_ID-$(date +%m-%d-%Y)
据我所知,您不能在 sub 中 运行 系统命令。变量或环境。变量。 (或者至少我还没弄清楚怎么做)
将第一个块更改为:
- name: 'gcr.io/cloud-builders/gsutil'
args: ['-m', 'cp', '-r', '/workspace/api-testing/target/cucumber-html-reports', 'gs://testing-reports/${_DATE}_$BUILD_ID']
然后运行这个:
gcloud builds submit . --substitutions _DATE=$(date +%F_%H:%M:%S)
那么你的桶里就会有这样的东西:
gs://testing-reports/2020-02-13_14:01:40_8a6a7ed0-62e0-43ed-8f97-aa6eca9c2834
编辑:
对于由 Cloud Build 触发器启动的自动构建,请使用此 cloudbuild.yaml
:
steps:
- name: 'gcr.io/cloud-builders/gsutil'
entrypoint: 'bash'
args:
- '-c'
- |
gsutil -m cp -r $FILENAME gs://$BUCKET/$FILENAME-$(date +%F_%H:%M:%S)-$BUILD_ID
这允许构建器使用bash
执行gsutil
,因此bash
命令“date
”可以在命令内部使用
Googler here, and info about entrypoint here.
对语法的很好解释