Как сохранить выходные данные компоновщика инструментов Cloud Build Git в файл - PullRequest
0 голосов
/ 15 октября 2019

Я использую Google Cloud Build со сборщиком инструментов git и пытаюсь сохранить вывод git-diff в файл. Затем на следующем шаге я хочу cat файл. Однако файл всегда пуст, и я подозреваю, что git-diff не выводит никаких результатов.

- name: 'gcr.io/cloud-builders/git'
  entrypoint: /bin/bash
  args:
    - -c
    - |
      git diff-tree --name-only --no-commit-id -r $SHORT_SHA > /workspace/files.txt
- name: 'gcr.io/cloud-builders/git'
  entrypoint: /bin/bash
  args: 
    - -c
    - |
      echo "File contents " $(cat /workspace/files.txt)

Кроме того, я попытался выполнить этот шаг без использования оболочки bash и все еще не вижу вывод в журналах Cloud Build

- name: 'gcr.io/cloud-builders/git'
  args: ['diff-tree', '--name-only', '--no-commit-id', '-r', '$SHORT_SHA']

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 15 октября 2019

Я понял это - моя проблема была в том, что я обращался к частному репозиторию GitHub. Я не осознавал, что это проблема, потому что не было сообщения об ошибке.

Я пытался следовать документации Google (https://cloud.google.com/cloud-build/docs/access-private-github-repos), чтобы использовать Cloud KMS с токенами SSH для доступа к частному репозиторию. Однако янаконец-то решил создать учетную запись GitHub для наших операций развертывания. В этой учетной записи я создал личный токен.

Затем я добавил токен в качестве переменной триггера в Cloud Build. Это позволило мне клонировать репозиторий инаконец выполните git diff внутри Cloud Build.

Вот последний шаг:

steps:
- name: 'gcr.io/cloud-builders/git'
  args: ['clone', 'https://${_TOKEN_}@github.com/[username]/[repo]']
- name: 'gcr.io/cloud-builders/git'
  entrypoint: /bin/bash
  args:
    - -c
    - |
      cd [repo] &&
      git diff-tree --name-only --no-commit-id -r $SHORT_SHA > /workspace/files.txt
0 голосов
/ 15 октября 2019

Я выполнил несколько тестов и на выходе напечатал обновленные файлы в коммите. Работает с длинным и коротким ша. Ваша команда облачной сборки верна (напишите вывод и прочитайте ее).

Я не знаю, что вы выполняете в своем коммите, это скорее проблема git, чем проблема Cloud Build. Вы выполняете это на коммите без изменения файла, например, на запрос на удаление или слияние / ребазирование?

...