Сопоставление с образцом для параметра правил Gitlab CI - PullRequest
0 голосов
/ 12 марта 2020

Я пытаюсь использовать правила: параметр, позволяющий заданию появляться в конвейере, только если указанные пользователи сделали pu sh. Я не хочу определять список пользователей для каждой работы, поэтому у меня есть следующая глобальная переменная:

variables:
  USER_LIST: "user1 user2 user3"

, и в работе у меня есть следующее:

rules:
 - if '$USER_LIST =~ /$GITLAB_USER_LOGIN/'
    when: on_success
 - when: never

This похоже, не работает, так как я подозреваю, что используемый шаблон регулярного выражения не заменяется переменной и использует $GITLAB_USER_LOGIN в качестве строки поиска. Если я использую явный поиск:

rules:
 - if '$USER_LIST =~ /user1/'
    when: on_success
 - when: never

, то шаблон соответствует очень хорошо.

ПРИМЕЧАНИЕ. Я знаю, что GITLAB_USER_LOGIN является защищенной переменной. У меня такая же проблема и с GITLAB_USER_EMAIL.

Итак, вопрос в том, как я могу поместить предопределенную переменную GITLAB в строку, которая будет использоваться для сопоставления с образцом?

1 Ответ

0 голосов
/ 08 апреля 2020

Документация показывает, что регулярное выражение соответствия контента должно выглядеть следующим образом:

$VARIABLE =~ /^content.*/

для вашего кода необходимо добавить ^ и .*:

rules:
 - if '$USER_LIST =~ /^user1.*/'
    when: on_success
 - when: never
...