Jenkins Mercurial插件未检测到更改

时间:2018-05-19 22:24:06

标签: jenkins jenkins-plugins mercurial-hook

当我的管道轮询Mercurial仓库以进行更改时,它不会检测到任何更改,并且不会触发新版本。

在插件文档之后,我设置了一个推钩来触发轮询,它工作正常,但无法检测到更改。我得到的只是

  

Mercurial Polling Log

     

于2018年5月19日晚上11:58:10开始

     

中没有轮询基线      

完成。花了0毫秒

     

无变化

我正在与:   - 詹金斯v2.107.3   - Mercurial插件v2.3

我刚创建了一个测试mercurial repo,其中包含一些带有随机内容的文件来测试设置,还有一个jenkins管道' polling-test'检查回购并回声" hello world"。

pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                checkout changelog: true,
                    poll: true,
                    scm: [
                        $class: 'MercurialSCM',
                        credentialsId: 'jenkins',
                        revision: 'default',
                        revisionType: 'BRANCH',
                        source: 'ssh://hg-user@hg-server/test-repo'
                    ]
            }
        }
        stage('Tests') {
            steps {
                echo "Hello World"
            }
        }
    }
}

还检查了Poll SCM选项,没有任何计划。

我修改了repo做类似的事情:

$ echo "foo" > bar
$ hg add bar
$ hg commit -m "change"
$ hg push

然后用

触发轮询
$ curl "https://jenkins-server/mercurial/notifyCommit?url=ssh://hg-user@hg-server/test-repo"
Scheduled polling of polling-test

轮询日志显示已触发,但未发现任何更改。

我做错了什么?如何检测变更?

1 个答案:

答案 0 :(得分:0)

通过在"全局工具"中添加Mercurial安装,将管道脚本更改为

,我能够正确地进行轮询工作
pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                checkout([$class: 'MercurialSCM', credentialsId: 'jenkins', installation: 'Mercurial', source: 'ssh://hg-user@hg-server/test-repo'])
            }
        }
        stage('Tests') {
            steps {
                echo "Hello World"
            }
        }
    }
}

同时选中Polling选项,当然也是第一次手动运行管道以获取参考变更集。