Я пытаюсь использовать оператор if в моем файле Jenkins для проекта с несколькими ветвями. Для ответа на этот вопрос предположим, что в моем текущем каталоге есть текстовый файл с именем scan.txt. Текстовый файл создается с помощью команды bash
echo "False" > scan.txt
Таким образом, единственным содержимым является строка "False".
Я установил произвольную переменную среды в моем файле Jenkins для содержимого scan.txt следующим образом:
script {
env.TEXT = readFile 'scan.txt'
}
If I do
echo "${env.TEXT}"
вне блока сценария консоль jenkins показывает False для этого шага, как и ожидалось.
Однако все мои попытки проверить, равно ли оно «Ложь», потерпели неудачу. Я пробовал следующее сразу после блока скрипта:
if (env.TEXT.equals("False")) {
//do something
}
if (env.TEXT.matches("False")) {
//do something
}
if (env.TEXT == "False") {
//do something
}
и ни один из них не работает. Все эти условия являются логическим ложным. В документации для этапа конвейера чтения файла указано, что он возвращает строку содержимого файла https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#code-readfile-code-read.-file-from-workspace Так что я не уверен, что здесь происходит. У кого-нибудь есть идеи?
Спасибо