#amazon-web-services #aws-codepipeline #aws-codebuild
Вопрос:
Один из этапов в моем конвейере CI/CD структурирован следующим образом:
Действие CodeBuild просто запускает некоторые тесты с использованием Newman и выводит файл отчета JUnit. Затем функция Lambda выполняет более глубокий анализ выполнения и отправляет некоторые данные на внешний шлюз API.
Если какой-либо из тестов завершается неудачно, действие сборки кода помечается как «сбой», и следующее действие (Лямбда) не запускается.
Проблема в том, что мне нужно собирать и анализировать эти тестовые данные даже в случае сбоя теста.
Мне удалось решить проблему простым решением: добавить | true
в конец командной строки внутри файла buildspec.yml сборки кода, например:
build:
commands:
- newman run ... | true
Это работало в течение некоторого времени, но теперь есть еще одна проблема, я больше не могу управлять файлом buildspec.yml (также не могу управлять запущенным им приложением). Но у меня есть доступ к облачной информации, которая создает этот конвейер.
Есть ли в любом случае возможность настроить сборку кода так, чтобы она всегда выходила со статусом «Успешно»? Или, может быть, какая-то конфигурация на самой кодовой линии?
Комментарии:
1. Вы находитесь в затруднительном положении, конвейер остановит обработку, если она выйдет из строя, и я думаю, что это так, как задумано, а не настраивается. Если бы у вас был доступ к спецификации сборки, вы могли бы вызвать свою лямбду в блоке «наконец», который будет выполняться, даже если предыдущие команды завершатся неудачно — см. docs.aws.amazon.com/codebuild/latest/userguide/. … Если у вас есть облачная информация конвейера, вы можете написать встроенную спецификацию сборки, создав таким образом новую спецификацию сборки, но это может не подойти.