# #gitlab #gitlab-ci
Вопрос:
Я хочу запустить этап publish_snapshot_rpm
для любой ветви, кроме master
или release
. Конвейер выполняется успешно, но этап publish_snapshot_rpm
не выполняется. Чего мне не хватает? Часть моего gitlab-ci
файла:
.publish:
stage: publish
tags:
- dev
dependencies:
- build
publish_snapshot_rpm:
extends: .publish
only:
# for any branch except master or release
- (?!(master|release)b)bw
script:
- some script here
Ответ №1:
Вы можете легко достичь этого, используя силу rules
ключевого слова.
rules:
- if: $CI_COMMIT_BRANCH == master
when: never
- if: $CI_COMMIT_BRANCH =~ /^release/
when: never
- when: on_success
Ответ №2:
Более простой способ с использованием except
:
.publish:
stage: publish
tags:
- dev
dependencies:
- build
publish_snapshot_rpm:
extends: .publish
except:
- master
- release
script:
- some script here
Комментарии:
1. «только и кроме не разрабатываются активно. правила — это предпочтительное ключевое слово для управления добавлением заданий в конвейеры. »