我最近为项目分配了新成员,因为它太大了,每天都有多次提交。 jenkins服务器上有多个作业,这些作业是从这个特定的仓库中构建的,我需要一种方法来确保每次新的提交都会在jenkins作业中触发构建。我知道这可以很容易地在带有钩子的自由风格作业中实现,但问题是我的所有工作都是管道工作并且让Jenkinsfiles构建它们。
因此,我需要找到一种方法来实现构建(对于对存储库的每次提交),从Jenkins文件中为管道作业实现。任何人都可以帮我这个吗?
答案 0 :(得分:1)
让我们首先明确一下,在git中为每个提交构建一个,你首先需要创建一个钩子或类似的东西,它会将提交推送到分支,否则无法从jenkins服务器访问提交,除非你不运行jenkins每台开发者机器或者都有码头化的jenkinses。
下一步,您可以使用以下代码:
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并拉出具有新更改的请求。对于第一次运行,它将显然检查所有branchec,然后它将仅对具有新更改的分支执行jenkins文件。