如何将日期 arg 传递到我的 cloudbuild yaml

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 存储/存储桶中最后修改的时间对文件进行排名)

谢谢

asb*_*elw 6

将第一个块更改为:

- 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在这里对语法做了很好的解释,这里还有关于入口点的信息。