Gitlab CI 脚本:排除分支
Gitlab CI script: exclude branches
我正在尝试改进 YML 文件中描述的项目构建脚本,改进本身似乎微不足道,但意外破坏自动构建的想法让我有点害怕。
目前项目中有多个分支、版本标签和其他内容。
不是由运行者构建的开发分支会有用,因为在虚拟机之间以某种方式复制一个巨大的项目以测试在不同平台上的构建一点也不方便。所以,我想从构建中排除一些 "prj-dev" 分支。
我们有:
stages:
- build
- linuxbuild
job:
tags:
- win2008build
stage: build
script:
# something complex
job1:
tags:
- linux
stage: linuxbuild
script:
# something else complex
我用谷歌搜索并找到了如下解决方案:
stages:
- build
- linuxbuild
job:
tags:
- win2008build
branches:
except:
- *dev-only
不过好像我们的pipeline很不一样,tags不是gittags,是pipeline tags。所以,我正在考虑使用像这样的配置:
stages:
- build
- linuxbuild
job:
tags:
- win2008build
except:
branches:
- *dev-only
...这意味着 "build as usual, but not my branch"。两种方法都尝试会很复杂,我敢肯定有人应该知道食谱。
所以,如果你愿意,-- 我如何在不更改管道的情况下排除我的开发分支,仅配置?有可能吗?
您需要做的就是在 gitlab-ci.yml
文件中使用 except
并直接在下面添加您的分支,如下所示:
mybuild:
stage: test
image: somedockerimage
script:
- some script running
except:
- branch-name
这在我的项目上没有问题。
我正在尝试改进 YML 文件中描述的项目构建脚本,改进本身似乎微不足道,但意外破坏自动构建的想法让我有点害怕。
目前项目中有多个分支、版本标签和其他内容。
不是由运行者构建的开发分支会有用,因为在虚拟机之间以某种方式复制一个巨大的项目以测试在不同平台上的构建一点也不方便。所以,我想从构建中排除一些 "prj-dev" 分支。
我们有:
stages:
- build
- linuxbuild
job:
tags:
- win2008build
stage: build
script:
# something complex
job1:
tags:
- linux
stage: linuxbuild
script:
# something else complex
我用谷歌搜索并找到了如下解决方案:
stages:
- build
- linuxbuild
job:
tags:
- win2008build
branches:
except:
- *dev-only
不过好像我们的pipeline很不一样,tags不是gittags,是pipeline tags。所以,我正在考虑使用像这样的配置:
stages:
- build
- linuxbuild
job:
tags:
- win2008build
except:
branches:
- *dev-only
...这意味着 "build as usual, but not my branch"。两种方法都尝试会很复杂,我敢肯定有人应该知道食谱。
所以,如果你愿意,-- 我如何在不更改管道的情况下排除我的开发分支,仅配置?有可能吗?
您需要做的就是在 gitlab-ci.yml
文件中使用 except
并直接在下面添加您的分支,如下所示:
mybuild:
stage: test
image: somedockerimage
script:
- some script running
except:
- branch-name
这在我的项目上没有问题。