Перевірте, чи існує файл у конвеєрі jenkins


78

Я намагаюся запустити блок, якщо каталог існує в моїй робочій області jenkins, а крок конвеєра "fileExists: Перевірка наявності файлу" у робочій області не працює належним чином.

Я використовую Jenkins v 1.642 та Pipeline v 2.1. і намагається мати такий стан, як

if ( fileExists 'test1' ) {
  //Some block
}

Які інші альтернативи у мене є у трубопроводі?


Будь ласка, опишіть некоректну поведінку, яку ви спостерігаєте:
izzekil

Відповіді:


174

Вам потрібно використовувати дужки під час використання fileExistsкроку в ifумові або присвоїти змінне значення, що повертається

Використання змінної:

def exists = fileExists 'file'

if (exists) {
    echo 'Yes'
} else {
    echo 'No'
}

Використання дужок:

if (fileExists('file')) {
    echo 'Yes'
} else {
    echo 'No'
}

1
def reportPath = build.getWorkspace (). child ("Report.txt"), який з них правильний? def існує = fileExists reportPath АБО def існує = fileExists 'reportPath'. Я отримую повідомлення [Не вдалося знайти маркер вмісту (перевірте ваше використання): fileExists] в обох випадках.
Шарон,

2
Я отримую повідомлення про помилку, коли я пробую цей синтаксис ( fileExistsіз дужками) - "WorkflowScript: 90: очікується крок @ рядок 90, стовпець 21", з вказівкою на if.
Маріус Гедмінас

1
А як щодо порівняння імен файлів? Чи використовує цей метод порівняння з урахуванням регістру при порівнянні імен файлів? Якщо так, то як можна порівняти у випадку нечутливості?
Viktors Telle

3
Для декларативного файлу Jenkins ви можете використовувати fileExists (файл: 'src / test / java') (наприклад, для вираження when для кроків на етапі)
gkephorus,

3
@MariusGedminas Оператор if не може бути на верхньому рівні в межах "кроку" конвеєра. Додайте оператор if у тег сценарію, щоб це виправити. Наприклад, крок {сценарій {if (умова) {doSomething ()}}}
Джон Фу Нгуєн
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.