【问题标题】:Trigger a multibranch pipeline when there is a change in files in specific folder当特定文件夹中的文件发生更改时触发多分支管道
【发布时间】:2021-08-03 19:48:09
【问题描述】:

当文件夹中的某些文件被推送到 BitBucket 时,我想运行多分支管道。我尝试过轮询忽略对某些路径的提交。但管道没有触发。任何人都可以帮助解决问题。如何在包含的轮询区域内准确指定路径会忽略对某些路径的提交。

【问题讨论】:

    标签: jenkins triggers jenkins-pipeline pipeline polling


    【解决方案1】:

    我在包含1.txt2.txt 的Git 存储库中使用了以下Jenkinsfile

    pipeline {
        agent any
    
        stages {
            
            stage('1.txt in changelog') {
                when {
                    // see https://www.jenkins.io/doc/book/pipeline/syntax/#built-in-conditions
                    changelog '1.txt'
                }
                steps {
                    echo '1.txt in changelog'
                }
            }
     
            stage('2.txt in changelog') {
                when {
                    changelog '2.txt'
                }
                steps {
                    echo '2.txt in changelog'
                }
            }
            
            stage('1.txt in changeset') {
                when {
                    changeset '1.txt'
                }
                steps {
                    echo '1.txt in changeset'
                }
            }
     
            stage('2.txt in changeset') {
                when {
                    changeset '2.txt'
                }
                steps {
                    echo '2.txt in changeset'
                }
            }
            
        }
    }
    

    更改并推送2.txt 后,相应多分支管道项目的控制台输出显示:

    ...
    [Pipeline] // stage
    [Pipeline] withEnv
    [Pipeline] {
    [Pipeline] stage
    [Pipeline] { (1.txt in changelog)
    Stage "1.txt in changelog" skipped due to when conditional
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] stage
    [Pipeline] { (2.txt in changelog)
    [Pipeline] echo
    2.txt in changelog
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] stage
    [Pipeline] { (1.txt in changeset)
    Stage "1.txt in changeset" skipped due to when conditional
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] stage
    [Pipeline] { (2.txt in changeset)
    [Pipeline] echo
    2.txt in changeset
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] }
    [Pipeline] // withEnv
    [Pipeline] }
    [Pipeline] // node
    [Pipeline] End of Pipeline
    Finished: SUCCESS
    

    这同样适用于创建2.txt,但适用于删除它。

    【讨论】:

      猜你喜欢
      • 2020-06-12
      • 2019-10-17
      • 2011-07-11
      • 1970-01-01
      • 2022-10-17
      • 2020-09-07
      • 2022-08-03
      • 1970-01-01
      • 2020-11-20
      相关资源
      最近更新 更多