Короткий ответ
Судя по логу, упала стадия `test`: сборка (`build`) завершилась успешно, а тест `test_calculate_discount` завершился с ошибкой `AssertionError`, поэтому пайплайн остановился до стадии деплоя.
Как это работает подробнее
пайплайн состоит из последовательных стадий, и большинство CI-систем по умолчанию останавливают выполнение следующих стадий, если текущая завершилась с ненулевым кодом возврата. Код в логе (`exit code 1`) и явное сообщение об ошибке теста — главные подсказки для диагностики.
Пример кода
example.txt
$ npm run build
> build finished successfully
$ npm test
✓ calculates total price
✗ test_calculate_discount
AssertionError: expected 90 to equal 100
Tests: 1 failed, 1 passed
Exit code: 1
Pipeline stage "test" failed. Stage "deploy" skipped.Что использовать на практике
- На практике. нужно читать лог снизу вверх или искать первое красное сообщение, а не последнюю строку — иногда после ошибки выводится ещё технический «cleanup»-вывод. Важно также смотреть, какая именно стадия помечена как failed в интерфейсе CI, а не полагаться только на текст.
- Пример. Правильный ответ: упала стадия `test` из-за неверного значения, возвращаемого функцией расчёта скидки; стадия `deploy` не запускалась, потому что пайплайн остановился раньше.
Подводные камни
- Частые ошибки. новички иногда считают упавшей стадию `deploy`, потому что именно её не было в логе, хотя на самом деле она просто не запустилась из-за падения `test`; также путают предупреждения (warning) с реальной причиной падения.