IT заметки по программированию
IT заметки по программированию
IT заметки по программированию
IT заметки по программированию

Как выдать ошибку в пайплайн, если bash скрипт неправильно отработал?

Чтобы остановить пайплайн и выдать ошибку, если Bash-скрипт завершился с ошибкой, можно использовать несколько подходов. Самый распространенный метод — это проверка кода возврата (exit code) скрипта. В Bash, если скрипт или команда завершаются с ошибкой, они возвращают ненулевой код (обычно 1 или выше). В пайплайнах CI/CD также применяются специальные команды для выдачи ошибки при сбое скрипта.

Подходы для остановки пайплайна при ошибке в Bash-скрипте

1. Использование set -e в начале скрипта

Добавление set -e в начале скрипта заставляет его завершаться при любой ошибке. Если скрипт выйдет с ненулевым статусом, пайплайн остановится.

2. Проверка кода возврата команды ($?)

Если требуется более выборочное управление, можно проверить код возврата $? после каждой важной команды. Например:

3. Использование || exit 1 для отдельных команд

Также можно использовать || exit 1 сразу после команд, которые могут завершиться с ошибкой:

4. Использование trap для вывода сообщения и выхода при ошибке

С помощью trap можно отловить ошибку и выполнить дополнительные действия (например, вывод сообщения), прежде чем выйти из скрипта.

Включение в CI/CD пайплайн

В CI/CD пайплайнах (например, GitLab CI, Jenkins или GitHub Actions) скрипты завершаются с ошибкой, если команда Bash возвращает ненулевой код выхода. Поэтому если скрипт выполнит exit 1, это автоматически приведет к сбою стадии пайплайна.

Пример для CI/CD пайплайна

Резюме

Использование set -e — это самый простой способ остановить скрипт и завершить пайплайн при возникновении ошибки. Однако для более гибкого управления можно использовать trap или проверку кода возврата ($?) для специфических команд.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *