Jenkins管道触发器已归档

时间:2018-08-31 13:24:45

标签: jenkins jenkins-pipeline

我需要每5分钟运行一次jenkins管道并仅在/tmp/*.json存在时触发阶段。该怎么做?

我有骨架:

pipeline {
    agent any
    environment {
        def JSON_PATH = '/tmp/*.json'
    }

    triggers {
        cron('*/5 * * * *')
    }

    stages {
        [...]
    }

}

1 个答案:

答案 0 :(得分:1)

您在正确的轨道上。要检查文件是否存在,可以使用ls并读取退出状态。

stage('Check file existence') {
    steps {
        script {
            fileExists = sh(returnStatus: true, script: 'ls /tmp/*.json') == 0
        }
    }
}

stage('Do actions') {
    when {
        expression { fileExists }
    }
    steps {
        <insert desired steps here>
    }
}