Ваша директива sh
запускает дочерний процесс, запускающий bash
. Ваш дочерний процесс наследует все переменные окружения родительского процесса и может создавать некоторые свои собственные переменные. Как только ваш дочерний процесс умирает, все переменные - и наследуемые, и созданные - d ie с ним
Один из двух способов решения этой проблемы:
- Если вам нужно понять, была ли ваша команда успешной или неудачной, вы можете полагаться на статус ошибки вместо сообщения об ошибке. , Обычно linux команды возвращают 0, если они были выполнены успешно, и не 0 в противном случае. Дженкинс отказывает в конвейере по любой команде, отличной от 0 Итак, следующих может будет достаточно:
sh "aws ec2 describe-instances --instance-ids ${primaryInstanceId}"
Если эта команда вернет состояние, отличное от 0, конвейер завершится ошибкой. Вы можете заключить его в try { ... } catch () { ... }
, чтобы поднять свою собственную ошибку.
Если вам нужно использовать выходные данные позже в конвейере, вы должны либо получить их из выходных данных (например, запустив
sh script: "...", returnStdout: true
, либо вы можете захотеть записать их в файл, а потом обработать этот файл.