我们正在使用Jenkins构建管道插件。我们的持续交付战略就是这样;
- 团队推送代码,Jenkins初始工作触发
- 创建了一个新的发布分支
- 如果封装和单元测试成功。那么
- 将释放分支推送到github,否则删除本地创建的分支
- 存档的工件和
我的参考资料:https://www.youtube.com/watch?v=McTZtyb9M38
如步骤4所示,每个作业触发都会创建新的分支,并导致SCM上发生分支污染。
如何从SCM(Github)中删除旧分支我想在Github上保留至少5个最新分支。
注意:我们不会将每个构建都部署到生产环境中。
解决方案可能是这样的;
作为建设后的行动;
#!/bin/sh
a=0
release=$2
until_build=`expr $1 - 5`
until [ ! $a -lt $until_build ]
do
exists=`git show-ref release-"$release".$a`
if [ -n "$exists" ]; then
git branch -D tag-release-"$release".$a
git push origin --delete release-"$release".$a
fi
a=`expr $a + 1`
done