Gitlab CI 脚本:排除分支

Gitlab CI script: exclude branches

我正在尝试改进 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

不过好像我们的pipeline很不一样,tags不是gittags,是pipeline tags。所以,我正在考虑使用像这样的配置:

stages:
 - build
 - linuxbuild
job:
 tags:
 - win2008build 
 except:
   branches:
    - *dev-only

...这意味着 "build as usual, but not my branch"。两种方法都尝试会很复杂,我敢肯定有人应该知道食谱。

所以,如果你愿意,-- 我如何在不更改管道的情况下排除我的开发分支,仅配置?有可能吗?

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

mybuild:
    stage: test
    image: somedockerimage
    script:
        - some script running
    except:
        - branch-name

这在我的项目上没有问题。