Jenkins管道触发文件

问题描述 投票:0回答:1

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

我有骨架:

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

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

    stages {
        [...]
    }

}
jenkins jenkins-pipeline
1个回答
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>
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.