我有资源库结构
{{1}}
两个Jenkins Jobs job1用于第一条路径,job2用于第二条路径。 因此,如果提交在job1目录路径上,job1应该触发,如果提交在job2目录路径,则应该触发Jenkins中的job2。 但问题是合并拉取请求被合并到主控两个作业被触发甚至提交只是作业路径之一。
答案 0 :(得分:0)
这不是通常的情况。我认为你有两种方式。
这是在詹金斯实现这一目标的一种方法(我的观点2)
一个问题是:两个jenkins将开始,但是一个将在没有完成jenkins-job的情况下终止。
你可以为此编写一个bash脚本。
JOB-1中的逻辑是终止,如果提交的文件在job2目录下,对于JOB-2则相同(如果文件来自job2目录则终止)
添加此脚本并运行(作为第一个)Job-1 jenkins
#!/bin/bash
# Get count of job2 directory files
count_of_job2_files=`git show --pretty="format:" --name-only <commitID> | grep "job2/" | wc -l`
# if Job2 dir files are more than 0 then termiate the jenkins job
[ $count_of_job2_files -gt 0 ] && exit 0 ;
在job2 jenkins中添加相同类型的脚本。
注意:强> 假设您使用git作为存储库
,编写逻辑