【问题标题】:How do I execute a job for specific branch/tag on Gitlab CI 5.4+?如何在 Gitlab CI 5.4+ 上执行特定分支/标签的作业?
【发布时间】:2015-03-17 13:54:46
【问题描述】:

Gitlab CI 上的最新CHANGELOG github.com repo 声明

  • 工作可以是特定于分支的或特定于标签的,或者两者兼而有之

有人试过这个功能吗?我将如何为特定分支进行构建?我还没有看到任何明显的选择。

Here is a screenshot 的新职位页面视图。

  • Trigger 选项可让您在构建提交、标签或两者之间进行选择。
  • AFAIK,根据帮助消息,Tags 输入用于确定哪个 Runner(或组或他们)应该运行此作业,因为您可以关联任意标签与他们。这些是不是 git 标签。我对么?无论如何,这相当令人困惑。

那么,我可以在哪里为任何特定工作配置分支/标签名称?

在我的场景中,我想要实现的目标如下:

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

【问题讨论】:

    标签: git gitlab-ci


    【解决方案1】:

    在 GitLab CI 5.2 中,您可以添加类似的条件

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

    if [ "$CI_BUILD_REF_NAME" != "master" ]; then
       // skip if not on master branch
        exit 0
    fi
    

    【讨论】:

    • 好的,这很有用。但是,那我所说的CHANGELOG 行呢?如何将整个作业配置为在单个分支上运行?我必须在每个脚本中编写这些条件吗?
    • 此外,您的方法似乎不适用于 Gitlab CI 5.4.0。我所有的构建都在第一行结束:if [ "$CI_BUILD_REF_NAME" == "master" ]; then,并且不要继续超出此范围(即使分支 ,实际上,master
    • 更新:我相信这个 (^) 是由于这个版本的 CI 中的一个错误造成的。我在他们的 github.com 仓库中有 opened an issue
    【解决方案2】:

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

    生产: 脚本: - 回声“你好世界” 只要: - 掌握

    另一个例子,见here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-29
      • 2022-01-03
      • 2020-10-26
      • 2021-12-17
      • 2020-06-28
      • 2021-12-14
      • 2022-11-04
      相关资源
      最近更新 更多