Jenkinsfile не выполняет весь сценарий оболочки - PullRequest
0 голосов
/ 30 октября 2019

У меня есть следующее в Jenkinsfile как отдельный этап:

        stage("Check if Postman scripts are already cloned, delete") {
            steps {
                sh "[ -d postman-scripts ] && rm -rf postman-scripts && echo 'Directory cleared.'"
            }
        }

Однако, когда я смотрю на мой конвейер Jenkins, он выглядит как сбой и не запускает весь скрипт:

[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Check if Postman scripts are already cloned, delete)
[Pipeline] sh
+ '[' -d postman-scripts ']'
[Pipeline] }

Это потому, что он не находит каталог postman-scripts, поэтому он не выполняет остальную часть сценария? И это считается ошибкой сборки? Он пропускает все последующие этапы, так что логично, я думаю, что он делает это.

Также любая помощь с сценариями bash была бы хорошей, я не совсем уверен, как я могу связать все это вместе в одну строку, чтобы сделать то, чтоЯ хочу (если каталог существует, удалить каталог. В противном случае ничего не делать).

1 Ответ

0 голосов
/ 31 октября 2019

Условие проверки вашей оболочки [ -d postman-scripts ] не будет выполнено, если каталог не существует. Это ошибка, как и любая другая команда, поэтому она завершается. @jordanm верен, использование -f вернет успех, даже если ничего не существует для удаления, поэтому ваш следующий шаг будет продолжен. Исключение, если невозможно удалить файлы из-за системной блокировки или чего-то подобного, что, вероятно, хорошо,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...