gpt4 book ai didi

git - Jenkins 包含的区域不起作用甚至选择使用工作区的强制轮询

转载 作者:太空狗 更新时间:2023-10-29 13:26:34 31 4
gpt4 key购买 nike

  • git 1.5.4
  • Jenkins 1.563
  • git 插件 2.2.1

我的git项目是这样的:

testproject/code/b2b/admin/...
testproject/code/b2b/app/...
testproject/code/b2c/admin/...
testproject/code/b2c/app/...

在其他行为部分,我添加了使用工作区的强制轮询。并添加轮询忽略某些路径中的提交。

在包含区域中,我写了

code/b2b/admin/.*
code/b2c/admin/.*

在构建触发器部分,我在 Poll SCM 中编写了 * * * * * 但是,无论我在 testproject 中的何处更改代码,它都不会触发。

最佳答案

那个轮询插件确实seem to be broken ,但作为 Jenkins 1.x 的解决方法,您可以使用下游作业,该作业以条件步骤开始,该步骤利用 git whatchanged 命令。

git whatchanged "${GIT_PREVIOUS_SUCCESSFUL_COMMIT}".."${GIT_COMMIT}" | grep '^:' | cut -f 2 | grep '^{path}/'

这是一个更容易使用的片段,它利用了 Jenkins Job Builder 中的一些 whatchanged代码。

builders:
- conditional-step:
on-evaluation-failure: dont-run
condition-kind: or
condition-operands:
- condition-kind: shell
condition-command: |
if [[ -z "${{GIT_PREVIOUS_SUCCESSFUL_COMMIT}}" ]]; then
echo 'GIT_PREVIOUS_SUCCESSFUL_COMMIT was empty'
elif [[ "${{GIT_PREVIOUS_SUCCESSFUL_COMMIT}}" != "${{GIT_COMMIT}}" ]]; then
git whatchanged "${{GIT_PREVIOUS_SUCCESSFUL_COMMIT}}".."${{GIT_COMMIT}}" | grep '^:' | cut -f 2 | grep '^{path}/'
else
# This should have been selected earlier as the build-cause operand of the conditional step...
echo 'previous and current commits match, implying the job is kicked off manually'
fi
steps:
- trigger-builds:
- project: 'downstream job'
condition: SUCCESS
block: true
predefined-parameters: |
GITREF=${{GIT_COMMIT}}

关于git - Jenkins 包含的区域不起作用甚至选择使用工作区的强制轮询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24075182/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com