如果代码库有新的提交,建立一个流水线作业

3
我最近为项目分配了新成员,由于项目规模太大,每天都会有多个提交。Jenkins服务器上有多个作业从此特定repo构建,我需要确保每次新的提交都会在Jenkins作业中触发构建。我知道可以通过free style工作来轻松实现这一点,但问题在于我的所有作业都是pipeline作业,并且有Jenkinsfiles来构建它们。
因此,我需要找到一种方法,在Pipeline作业的Jenkinsfile中实现对仓库进行每次提交时的构建。有人能帮我解决这个问题吗?
1个回答

1
首先要澄清的是,在git中为每个提交构建,您需要创建一个钩子或类似的东西来将提交推送到分支,否则除非您在每个开发者机器上运行jenkins或者有docker化的jenkinses,否则提交无法从jenkins服务器访问。
接下来,您可以使用以下代码:
stage('Checkout') {
            checkout([$class                           : 'GitSCM',
                      branches                         : [[name: '**']],
                      doGenerateSubmoduleConfigurations: false,
                      extensions                       : [],
                      submoduleCfg                     : [],
                      userRemoteConfigs                : [[credentialsId: 'CREDENTIALS',
                                                           name         : 'origin',
                                                           refspec      : '+refs/pull/*:refs/remotes/origin/pr/* +refs/heads/*:refs/remotes/origin/*',
                                                           url          : 'REPO URL TO CHECK OUT']]])

        }

在Jenkins作业配置页面中,将此配置放置- http://prntscr.com/j0m6aq。这意味着检查将尝试每分钟轮询scm,下面的代码将确保为所有活动分支和具有新更改的拉取请求轮询scm。对于第一次运行,它显然会检查所有分支,之后它将仅为具有新更改的分支执行您的jenkinsfile。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接