Пайплайн выкатывает релиз при красных тестах
Пайплайн выглядит так:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci
- run: npm test
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: ./deploy.sh
На прод уехал релиз, у которого упали тесты. Где ошибка?
- Джобы идут сверху вниз, значит `test` отработал раньше; беда в том, что `npm test` не прерывает пайплайн — нужно проверять код возврата вручную
- Ошибка в `deploy`: скрипт `./deploy.sh` не проверяет код возврата предыдущего шага и продолжает выкатку после падения
- Между джобами нет зависимости: `deploy` стартует одновременно с `test`; связать их нужно через `needs`
- Проблема в кэше зависимостей: без него `npm ci` в разных джобах ставит разные версии, и тесты проверяют не тот код
