gitlab ci run конфигурирование
Нужна подсказка. Пытаюсь сделать сборку ci по таким критериям:
- Запуск только при пуше в мастер ветку - уже реализировано
- Запуск по коммиту [run ci] - уже реализировано
- Запуск ручками из Run pipline - уже реализировано
- не запускать при пуше в мастер ветку когда меняется только Tag
- не запускать в остальных случаях если они не подпадают под первые 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"