Gitlab CI脚本:排除分支

时间:2018-07-13 11:55:36

标签: gitlab gitlab-ci auto-build

我正在尝试改进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分支,仅配置?可能吗?

2 个答案:

答案 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”母版进行测试,然后当您合并到母版中时,其他为母版设计的工作就会开始。