如何在Jenkins构建完成后更新文件且不触发GitHub Actions循环?
解决方案:本地更新文件不推送,避免循环触发
核心思路
既然不需要将old_build_number.txt和new_build_number.txt的变更推送到GitHub仓库,直接在GitHub Actions的运行环境中仅修改本地文件即可,完全跳过git add、git commit、git push这类推送远程仓库的操作——循环触发的根源就是推送操作触发了Jenkins的webhook,砍掉推送就能彻底解决问题。
具体调整步骤
- 打开你的
trigger-jenkins-build.yml文件,定位到更新构建号文件后执行git推送的代码段。 - 删除所有与git推送相关的命令,只保留修改文件的逻辑。
例如,将原来的代码:
# 原代码:更新文件后推送远程 echo $BUILD_NUMBER > new_build_number.txt git add old_build_number.txt new_build_number.txt git commit -m "Update build numbers to $BUILD_NUMBER" git push origin ${GITHUB_REF#refs/heads/}
修改为:
# 仅本地更新文件,不推送远程 echo $BUILD_NUMBER > new_build_number.txt cp new_build_number.txt old_build_number.txt
- 保存并提交这个工作流文件的修改(这次提交不会触发循环,因为后续工作流执行时已不再推送文件变更)。
额外说明
如果你的场景需要在仓库中保留构建号记录,但又不想触发Jenkins循环,可在commit信息中加入[skip ci]标记(需确保Jenkins配置了忽略包含该标记的推送),但这属于妥协方案——优先推荐上面的「仅本地修改」方案,从根源切断循环触发的可能。
内容的提问来源于stack exchange,提问作者SUBARAM RAM
相关产品推荐
相关产品推荐

