gitlab ci run конфигурирование

Нужна подсказка. Пытаюсь сделать сборку ci по таким критериям:

  1. Запуск только при пуше в мастер ветку - уже реализировано
  2. Запуск по коммиту [run ci] - уже реализировано
  3. Запуск ручками из Run pipline - уже реализировано
  4. не запускать при пуше в мастер ветку когда меняется только Tag
  5. не запускать в остальных случаях если они не подпадают под первые 3 пункта

Вот с 4 пунктом проблема, я знаю что можно использовать only branches но я его не могу использовать с rules.

Тег может поменяться без изменений других файлов и не нужно запускать сборку, пытался таким правилом

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

но оно не работает в случае если изменения есть и в файлах и в тегах.

Буду рад любым подсказкам.)

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 шт):