Что это за задача
Чиним баг: гейт проверки расширения artifacts в entrypoint.sh не срабатывал никогда (кавычки вокруг %{http_code} ломали сравнение). Теперь отказом считаются ненулевой код, пустой вывод и значение 000.
Зависит от: DP-6-RS-6.1
Задача из листа «Задачи» проекта (DP-7-CI-3, ДОЛГ, приоритет P0). Срез DP-7-CI-3: статус — готово.
Тесткейсы
Кейсы, привязанные к этой задаче в листе «Тесткейсы» (колонка «Единица бэклога»):
| TC-ID | Дано | Когда | Тогда |
|---|---|---|---|
TC-DP-7-CI-3.1-a | entrypoint.sh с EXTENSION_CHECK_CMD из значения по умолчанию (переменная в окружении не задана); в PATH стаб curl, записывающий полученные аргументы в файл и печатающий значение своего -w; ARTIFACTS_URI указывает на недостижимый адрес | entrypoint.sh запускается | в записи аргументов -w равен %{http_code} без обрамляющих одинарных кавычек; вывод команды проверки — 000 без кавычек |
TC-DP-7-CI-3.1-b | EXTENSION_CHECK_CMD задан в окружении (стаб "false"), ARTIFACTS_URI задан | entrypoint.sh запускается | исполняется команда из окружения без изменений: стаб curl из PATH не вызывается ни разу, исход гейта определён кодом возврата и выводом переданной команды |
TC-DP-7-CI-3.2-a | три конфигурации команды проверки, каждая в отдельном прогоне: (1) ненулевой код возврата, вывод пуст; (2) нулевой код возврата, вывод пуст; (3) нулевой код возврата, вывод 000 | entrypoint.sh запускается на каждой конфигурации по отдельности | каждый прогон завершается кодом возврата 2; sentinel-файл запуска Goose не создан ни в одном из трёх |
TC-DP-7-CI-3.2-b | те же три конфигурации команды проверки — ненулевой код возврата, пустой вывод, значение 000 | entrypoint.sh запускается на каждой конфигурации по отдельности | сообщение об ошибке называет ARTIFACTS_URI и класс отказа, различный у трёх конфигураций; код возврата у всех трёх — 2, отдельного кода ни один класс не получает |
TC-DP-7-CI-3.2-c | команда проверки завершается нулевым кодом возврата и печатает 404 | entrypoint.sh запускается | гейт не останавливает запуск: Goose стартует (sentinel-файл создан), код возврата 2 не выдаётся |
TC-DP-7-CI-3.3-a | в tests/integration/test_entrypoint.py стаб, воспроизводящий поведение curl с -w: печатает форматированное значение аргумента -w, на недостижимом адресе даёт 000 и ненулевой код возврата; EXTENSION_CHECK_CMD не переопределён, гейт работает на боевой форме команды | прогон нового кейса сьюта | entrypoint завершается кодом возврата 2, sentinel-файл запуска Goose отсутствует |
TC-DP-7-CI-3.3-b | сьют tests/integration/test_entrypoint.py в исходном виде: TC-CI-3.2-d (стаб EXTENSION_CHECK_CMD="false") и TC-CI-3.3-a (0/1/3/файл отсутствует→1) не правятся | сьют прогоняется целиком после изменения гейта | TC-CI-3.2-d зелёный на неизменённом стабе; пять сценариев маппинга статусов дают 0/1/3/1 и остаются зелёными в том же прогоне |