如何为Gitlab CI 5.4+;上的特定分支/标记执行作业;?

如何为Gitlab CI 5.4+;上的特定分支/标记执行作业;?,git,gitlab-ci,Git,Gitlab Ci,Gitlab CI上最新的CHANGELOG声明 作业可以是特定于分支的或特定于标记的,或者两者都可以 有人试过这个功能吗?我将如何着手为特定分支进行构建?我没有看到任何明显的选择 新的作业的页面视图 触发器选项允许您在提交生成、标记或两者之间进行选择 AFAIK,并且根据帮助消息,标记输入用于确定哪个运行者(或组或它们)应该运行此作业,因为您可以将任意标记与它们关联。这些不是git标签。我说得对吗?无论如何,这是相当令人困惑的 那么,在哪里可以为任何特定作业配置分支/标记名称 在我的场

Gitlab CI上最新的
CHANGELOG
声明

  • 作业可以是特定于分支的或特定于标记的,或者两者都可以
有人试过这个功能吗?我将如何着手为特定分支进行构建?我没有看到任何明显的选择

新的作业的页面视图

  • 触发器选项允许您在提交生成、标记或两者之间进行选择
  • AFAIK,并且根据帮助消息,标记输入用于确定哪个运行者(或组或它们)应该运行此作业,因为您可以将任意标记与它们关联。这些不是git标签。我说得对吗?无论如何,这是相当令人困惑的
那么,在哪里可以为任何特定作业配置分支/标记名称

在我的场景中,我希望实现以下目标:

  • 推送到
    master
    应该运行测试、执行发布并部署到类似于生产的服务器
  • 从任何功能分支到
    master
    的合并请求应该只运行测试并报告覆盖率

在GitLab CI 5.2中,可以添加如下条件

if [ "$CI_BUILD_REF_NAME" == "master" ]; then
   //run jobs specific to master branch
fi


您可以通过在
gilab ci.yml
中指定
only:
属性下的分支来实现这一点:

production: script: - echo 'hello world' only: - master 制作: 脚本: -回声“你好,世界” 仅: -主人
有关另一个示例,请参见。

Ok,这很有用。但是,那我刚才说的
CHANGELOG
行呢?如何将整个作业配置为在单个分支上运行?我必须在每个脚本中编写这些条件吗?而且,您的方法似乎不适用于Gitlab CI 5.4.0。我所有的构建都在第一行结束:
if[“$CI_BUILD_REF_NAME”==“master”];然后
,不要继续更新(即使分支确实是主分支):我认为这(^)是由于此版本的CI中存在错误。我在他们的github.com回购网站上看到过。 production: script: - echo 'hello world' only: - master