我想在Git / Git-hub主分支中的特定文件夹更改时运行jenkins作业。
目前,只要Git master正在更改,它就会运行,但只有当Git master中的特定文件夹发生更改时才需要运行。
正如我上面提到的,只有subFolder更改,而不仅仅是我需要运行作业,我尝试了不同的选项,但它无法识别我的文件夹。
寻找你的建议和解决方案。
感谢您提前。
答案 0 :(得分:2)
我能想到的一个hack是在你的jenkins测试脚本中,首先读取最新的提交(使用GIT_COMMIT环境变量),并扫描你关心的目标子目录中的任何更改。如果没有显示任何更改,则只需提前终止构建。
它不漂亮,但应该适用于您的场景。
示例:
git diff --name-only $GIT_PREVIOUS_SUCCESSFUL_COMMIT $GIT_COMMIT | grep "the/directory/you/care/" -q
if [ $? -ne 0 ]; then
# if there is no change under the directory you care, exit now.
echo "No change under the target directory. Skipping build.."
exit 0
fi
# your existing build/test script...
答案 1 :(得分:0)
我通过向Jenkins添加一个简单的附加行为来得到这个问题的答案,即只需检查Git部分下方的“附加行为”部分,然后选择“使用特定文件夹路径进行轮询'就是这样。
现在提供你想要的特定文件夹路径 - 在我的情况下'subFolder / * .sh'