我们在许多Git分支上并行工作。
当推送特定的Git分支时,我们如何启动将触发特定分支构建的Jenkins项目/作业?
作为一个例子:我们推送一个Git分支“feature-abc”==>这应该触发Jenkins构建作业使用/拉动该分支“feature-abc”。
对于每个新功能,我们都有一个分支,因此分支数量不固定。
所以,我认为它与this answer with a manual action不同。
答案 0 :(得分:1)
如果用例是为每个git push触发一个构建,你可以添加一个git pre-receive hook,一旦git-push完成就会触发构建。
#!/bin/bash
while read oldrev newrev refname
do
branch=$(git rev-parse --symbolic --abbrev-ref $refname)
#Trigger based on branch name "$branch" or pass this parameter to trigger the build
curl -X POST -u "user" "http://<jenkins_url>/job/buildWithParameters?branch_name=$branch"
done
答案 1 :(得分:0)
通过GUI构建Jenkins作业的更好的替代方案,使它们成为Jenkins管道。
(下面)简单的演示配置的结果是,每次将更新推送到Git存储库时,都会启动该(更改的)分支的Jenkinsfile。在Jenkins文件中,您可以输出分支名称。
如何?您可以在几分钟内轻松地自己创建这样的配置。在这种情况下,我的本地PC上运行的是Jenkins服务器。因此,默认情况下,Git项目中的Webhook无法访问此Jenkins服务器。 (注意:您可以使用Webhook中继来模拟真实的Webhook)。当Git服务器可以访问Jenkins服务器时,则绝对应使用Webhook。
。
node {
stage('Preparation') {
checkout scm
}
stage('Who am i?') {
echo "This job was triggered by a Git push to branch: ${env.BRANCH_NAME}"
}
}