Как передать дату arg моему облачному билду yaml - PullRequest
0 голосов
/ 04 февраля 2020

Мой 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)

Спасибо

Ответы [ 2 ]

0 голосов
/ 13 февраля 2020

Измените первый блок следующим образом:

- 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

Объяснение здесь и здесь .


РЕДАКТИРОВАТЬ :


Для автоматических c сборок, запущенных триггерами 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 здесь и информация о точке входа здесь .


0 голосов
/ 10 февраля 2020

Я уверен, что вы сможете 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)

Насколько я знаю, вы не можете запускать системные команды в подпрограмме. переменные или env. переменные. (или, по крайней мере, я не смог понять, как)

...