如何仅针对特定分支和某些规则运行 Gitlab CI?

时间:2021-06-17 12:07:15

标签: gitlab continuous-integration gitlab-ci

我正在尝试根据以下标准构建 ci:

  1. 仅在推送到 master 分支时运行 - 已实现
  2. 提交时运行 [run ci] - 已经实现
  3. 从运行管道手动启动 - 已实施
  4. 仅在 Tag 更改时推送到 master 分支时不启动
  5. 如果其他情况不属于前 3 个选项,则不要在其他情况下开始

标签可能会在不改变其他文件的情况下发生变化并且不需要运行程序集,我试过这个

if: $CI_COMMIT_BRANCH == "master" && $CI_COMMIT_TAG =~ /^$/ 

但如果文件和标签都发生了变化,则不起作用。

我很乐意提供帮助

我的 .gitlab-ci.yml

image: busybox:latest

build1:
  stage: build
  rules:
    - if: $CI_COMMIT_MESSAGE =~ /\[run ci\]/
    - if: $CI_COMMIT_BRANCH == "master" 
    - when: manual
      allow_failure: false
  script:
    - echo "Do your build  here"

test1:
  stage: test
  rules:
    - if: $CI_COMMIT_MESSAGE =~ /\[run ci\]/
    - if: $CI_COMMIT_BRANCH == "master" 
    - allow_failure: false
  script:
    - echo "Do a test here"
    - echo "For example run a test suite"

deploy:
  stage: deploy
  rules:
    - if: $CI_COMMIT_MESSAGE =~ /\[run ci\]/
    - if: $CI_COMMIT_BRANCH == "master" 
    - allow_failure: false
  script:
    - echo "Do a test here"
    - echo "For example run a test suite"

0 个答案:

没有答案