gitlab - Gitlab CI 脚本:排除分支
问题描述
我正在尝试改进 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
但似乎我们的管道很不一样,标签不是 git 标签,它们是管道标签。所以,我正在考虑使用如下配置:
stages:
- build
- linuxbuild
job:
tags:
- win2008build
except:
branches:
- *dev-only
...这意味着“像往常一样构建,但不是我的分支”。两种方法都有复杂的尝试,我很确定有人应该肯定知道这个食谱。
因此,如果您愿意,我如何在不更改管道的情况下排除我的开发分支,仅配置?有可能吗?
解决方案
您需要做的就是except
在gitlab-ci.yml
文件中使用并直接在下面添加分支,如下所示:
mybuild:
stage: test
image: somedockerimage
script:
- some script running
except:
- branch-name
这在我的项目上工作没有问题。
推荐阅读
- angular - 海量组件订阅还是单次订阅+导出数据?
- python - 通过对像素求和来重新缩放矩阵
- ruby-on-rails - 在 Sidekiq 作业中使用 Kaminari 渲染分页
- html - Asp.net MVC 导航栏
- mysql - MySQL 使用 GROUP BY 时的慢查询
- wordpress-gutenberg - 将多个 Gutenberg 块放在一个文件中 - 块数是否有限制?最后添加的一个不在插入器对话框中
- linear-programming - GLPK 输出格式
- c# - 如果模型实现 IEnumerable,为什么我不能进行强制转换
界面? - linux -
:0:1: 错误:宏名必须是标识符........这个错误的解决方案? - sql - 如何使用以前的信息将更新的信息添加到一个表到另一个表