tho*_*key 1 google-app-engine app.yaml google-cloud-build
我的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']
Run Code Online (Sandbox Code Playgroud)
这样我就可以将最新的报告与旧的报告分开。但是我可以将 {date} arg 或其他东西传递到我的第一行中,以便我可以看到所有旧报告的视觉顺序吗?
(因为无法按 gcp 存储/存储桶中最后修改的时间对文件进行排名)
谢谢
将第一个块更改为:
- 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
Run Code Online (Sandbox Code Playgroud)
这允许构建器使用bash来执行gsutil,因此可以在命令内部使用bash命令“ ”。date
Googler在这里对语法做了很好的解释,这里还有关于入口点的信息。