我正在尝试改进YML文件中描述的项目构建脚本,该改进本身似乎微不足道,但是不小心破坏自动构建的想法使我有些害怕。
现在项目中有几个分支,版本标签和其他内容。
将使用不是由跑步者构建的开发分支,因为以某种方式在虚拟机之间复制大型项目以在不同平台上测试构建并不方便。因此,我想从构建中排除一些“ prj-dev”分支。
我们有:
stages:
- build
- linuxbuild
job:
tags:
- win2008build
stage: build
script:
# something complex
job1:
tags:
- linux
stage: linuxbuild
script:
# something else complex
我用Google搜索了,发现了一个解决方案,例如:
stages:
- build
- linuxbuild
job:
tags:
- win2008build
branches:
except:
- *dev-only
但是似乎我们的管道是完全不同的,标签不是git标签,它们是管道标签。因此,我正在考虑使用像这样的配置:
stages:
- build
- linuxbuild
job:
tags:
- win2008build
except:
branches:
- *dev-only
...这意味着“像往常一样构建,而不是我的分支”。尝试这两种方法都有一定的复杂性,我敢肯定有人肯定会知道该食谱。
所以,请您-如何在不更改管道的情况下排除我的dev分支,仅配置?可能吗?
答案 0 :(得分:5)
您需要做的就是在except
文件中使用gitlab-ci.yml
并像下面这样直接在下面添加分支:
mybuild:
stage: test
image: somedockerimage
script:
- some script running
except:
- branch-name
这正在我的项目上顺利进行。
答案 1 :(得分:0)
@blurryroots种类...在商业部署中,您倾向于做的是分支以获得特定功能,然后合并回master。从master创建的分支可以称为任何名称,例如“ Dev1-Metrics-Feature-Logger”,这反过来意味着,如果要使用“ Only”标记使管道仅在开发分支上运行,则每次创建新分支时都需要更改脚本,因此“ “会更好。>对所有“ EXCEPT”母版进行测试,然后当您合并到母版中时,其他为母版设计的工作就会开始。