Linux проверить, существует ли файл Jenkins Pipeline - PullRequest
0 голосов
/ 21 января 2020

Я перепробовал все, но я не могу проверить, существует ли каталог в моей системе. Вот мой код

ws("${env.WORKSPACE}") {
 def test = fileExists '/proj'
                sh("ls")
                sh("echo ${test}")
                if(test) {
                sh("echo test")
                }
                else {
//this gets hit
                sh("echo not test")
                }

}

эта и многие другие комбинации не сработали.

Когда я запускал команду ls, там находился каталог proj, я не понимаю, почему он не работает

Ответы [ 2 ]

0 голосов
/ 21 января 2020

попробуйте это - это работает для меня

    stage("test") {
        sh 'mkdir proj'
        sh 'ls'
        if (fileExists('./proj')) {
            sh 'echo found'
        }
        else {
            sh 'echo Notfound'
        } 
    }

Вывод -

[Pipeline] {
[Pipeline] stage
[Pipeline] { (test)
[Pipeline] sh
20:53:45  + mkdir proj
[Pipeline] sh
20:53:45  + ls
20:53:45  proj
[Pipeline] fileExists
[Pipeline] sh
20:53:45  + echo found
20:53:45  found
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] }
[Pipeline] // timestamps
[Pipeline] End of Pipeline
Finished: SUCCESS
0 голосов
/ 21 января 2020

- это /proj папка, которую вы ищете, или вы хотите проверить, существует ли каталог в текущей рабочей области? В этом случае это будет ./proj

, вы также можете сделать проверку с bash

def test = sh script: '[ -d "/proj" ]', returnStatus: true
if (test == 0) {
  println 'exist'
}

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