Хранение артефактов из неудачной сборки - PullRequest
0 голосов
/ 28 апреля 2020

Я выполняю несколько тестов по проверке экрана на одном из этапов Cloud Build. Тесты выдают файлы png, которые я хотел бы просмотреть после сборки, но при успешной сборке появляются артефакты.

Если мой тест не пройден, процесс завершается с ненулевым кодом, что приводит к этому ошибка:

ERROR: build step 0 "gcr.io/k8s-skaffold/skaffold" failed: step exited with non-zero status: 1

, что приводит к другой ошибке


ERROR: (gcloud.builds.submit) build a22d1ab5-c996-49fe-a782-a74481ad5c2a completed with status "FAILURE"

И никакие артефакты не загружаются.

Я добавил || true после моих тестов, поэтому он выходит успешно, и артефакты загружены.

Я хочу:

  • A) Подтвердить, что это поведение ожидается
  • B) Знать, есть ли способ загрузить артефакты, даже если шаг не пройден

Редактировать:

Вот мой cloudbuild.yaml


options:
 machineType: 'N1_HIGHCPU_32'

timeout: 3000s

steps:

- name: 'gcr.io/k8s-skaffold/skaffold'
  env:
  - 'CLOUD_BUILD=1'
  entrypoint: bash
  args:
  - -x  # print commands as they are being executed
  - -c  # run the following command...
  - build/test/smoke/smoke-test.sh


artifacts:
  objects:
    location: 'gs://cloudbuild-artifacts/$BUILD_ID'
    paths: [
      '/workspace/build/test/cypress/screenshots/*.png'
    ]

1 Ответ

1 голос
/ 01 мая 2020

Google Cloud Build не позволяет нам загружать артефакты (или выполнять некоторые этапы) в случае сбоя этапа сборки. Это ожидаемое поведение.

В Publi c Issue Tracker уже создан запрос функции, позволяющий нам выполнить некоторые шаги, даже если сборка завершена или не выполнена. Пожалуйста, не стесняйтесь отмечать это, чтобы получить все соответствующие обновления по этой проблеме.

Обходной путь в настоящее время, как вы упомянули, используя || правда после испытаний или использования || выход 0, как упомянуто в этом выпуске Github .

...