我们有很多开发人员创建了我想要构建的功能分支。每晚我们运行一个需要在每个分支上运行的代码质量工具。我也不喜欢静态配置,因为分支的数量每隔几周就会发生变化。
4 回答
在 Git 配置中有一个字段 'Branch Specifier (blank for default): ' 如果你放在那里 ** 它会从所有远程构建所有分支。
有了它,您可以使用环境变量 ${GIT_BRANCH} 例如使用https://wiki.jenkins-ci.org/display/JENKINS/Build+Name+Setter+Plugin为构建设置标题或用于其他目的
我有同样的问题要解决。具体来说,制作一个包含所有分支的 zip 文件,并将其作为工件提供以用于不同的测试作业。
在“要建立的分支”中,输入“**”
然后,执行外壳:
while read -ra ITEM; do
for i in "${ITEM[@]}"; do
git checkout $i
<do your stuff>
done
done <<< $(git branch -r | grep -v "HEAD ->" | xargs -L 1 | cut -d'/' -f2)
这会读取分支列表,分别检出每个分支并允许在每个分支中执行操作。<<< 命令转换此输出:
origin/HEAD -> origin/master
origin/branch1
origin/master
origin/secondbranch
进入结帐可用列表:
branch1
master
secondbranch
老问题,但更合适的答案。下面的多分支插件允许您创建一个构建项目类型,将子项目与分支分开,自动将配置从顶层同步到子项目
https://wiki.jenkins-ci.org/display/JENKINS/Multi-Branch+Project+Plugin
2021 年更新此插件被标记为已弃用
此插件已弃用。请移至多分支管道作业类型。
对于更复杂的方法,Seed 插件为您提供了很大的灵活性来定义子作业
** for 分支说明符将针对所有分支和所有标签运行。如果您只想要分支,请使用 refs/heads/* 的分支说明符