Gitlab CI脚本:排除分支

Mas*_*ler 5 auto-build 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
Run Code Online (Sandbox Code Playgroud)

我用Google搜索,发现了一个解决方案,例如:

stages:
 - build
 - linuxbuild
job:
 tags:
 - win2008build 
 branches:
  except:
    - *dev-only
Run Code Online (Sandbox Code Playgroud)

但是似乎我们的管道是完全不同的,标签不是git标签,它们是管道标签。因此,我正在考虑使用如下配置:

stages:
 - build
 - linuxbuild
job:
 tags:
 - win2008build 
 except:
   branches:
    - *dev-only
Run Code Online (Sandbox Code Playgroud)

...这意味着“像往常一样构建,而不是我的分支”。尝试这两种方法都有一定的复杂性,我很确定有人肯定会知道该食谱。

因此,如果您愿意,-如何在不更改管道的情况下排除我的dev分支,仅配置?有可能吗?

Tho*_*ler 7

您需要做的就是exceptgitlab-ci.yml文件中使用,然后在下面直接添加分支,如下所示:

mybuild:
    stage: test
    image: somedockerimage
    script:
        - some script running
    except:
        - branch-name
Run Code Online (Sandbox Code Playgroud)

这正在我的项目上顺利进行。

  • 您可以使用“only”来代替“ except”来指定一个应专门考虑构建的分支。 (4认同)