Преобразование предложений "only / except" в предложение "rules" в Gitlab CI - PullRequest
1 голос
/ 30 мая 2020

Краткое описание проблемы:

Моя цель - добавить предложение rules для настройки задания Gitlab CI для запуска, если установлена ​​переменная среды или выполняется ручное действие. К сожалению, на данном этапе в настоящее время используются предложения only и except, поэтому мне также придется преобразовать их в синтаксис rules, который я еще не полностью понял.

Текущее определение задания:

deploy:
  only:
    - branches
  except:
    refs:
      - /flux-.*$/  
      - master
  stage: deploy
  when: manual

Необходимые изменения:

Я заменю

when: manual

на

rules:
  - if: '$CI_ENVIRONMENT_NAME'
  - when: manual

Теперь я хотел бы узнать, как для перевода пунктов only/except. Я думаю, что он будет полностью основан на тестах предопределенных переменных окружения, хотя я не уверен, какие переменные представляют интерес для этого перевода.

Большое спасибо за любые предложения или указатели.

1 Ответ

1 голос
/ 30 мая 2020

Как вы указали, использование предопределенных переменных среды - это способ go с rules. Многие из них можно использовать для достижения того же результата, это действительно зависит от ваших потребностей (например: $CI_COMMIT_REF_NAME vs $CI_COMMIT_REF_SLUG vs $CI_COMMIT_BRANCH).

Моя цель - добавить пункт rules для настройки задания Gitlab CI для запуска, если установлена ​​переменная среды или если выполняется ручное действие. *

Если $CI_ENVIRONMENT_NAME, то всегда запускать задание развертывания, в противном случае, если ветка не master и не соответствует /flux-.*$/, тогда разрешите запуск задания deploy вручную .

Верно?

Если да, одна реализация будет выглядеть так, как показано ниже. (Вы также можете использовать операторы || для объединения двух первых правил, если хотите)

deploy:
  stage: deploy
  rules:
    - if: '$CI_COMMIT_REF_NAME == "master"'
      when: never
    - if: '$CI_COMMIT_REF_NAME =~ /flux-.*$/'
      when: never
    - if: '$CI_ENVIRONMENT_NAME'
    - when: manual

Имейте в виду, что rules оцениваются по порядку. Надеюсь, это поможет.

...