Gitlab и размещение скрытых ключей скриптов во включаемых файлах - PullRequest
0 голосов
/ 22 марта 2019

У меня есть несколько сценариев, которые я хочу запустить на разных этапах в нескольких проектах.В настоящее время они имеют вид:

.hidden_key:  &hidden_key |
  do_something
  do_something_else

real_job:
  script:
    - *hidden_key

Фактически .hidden_key - это функция, которую я использую в файле .gitlab-ci.yml и в нескольких проектах таким образом.Но я не могу заставить работать включение, когда я перемещаю .hidden_key в файл и включаю его следующим образом:

include:
   - remote: https://gitlab/project/master/raw/hidden_key.yml

real_job:
  script:
    - *hidden_key

Когда я делаю это, gitlab жалуется на:

Error: Unknown alias: hidden_key

Я что-то делаю неправильно, или это фактическое ограничение включает (и поэтому не поддерживается)?

Какие есть альтернативы для очистки моего файла .gitlab-ci.yml?

1 Ответ

0 голосов
/ 22 марта 2019

Это почти наверняка ограничение включений (которое было бы намного лучше реализовано явно с помощью тега).

Стандартная загрузка YAML состоит из анализа, фазы компоновки и построения. Псевдонимы разрешаются во время фазы компоновки и якорей, например, не переходить к следующему документу в многодокументном YAML-файле.

Несмотря на то, что ключ include может быть интерпретирован как ранняя фаза построения (но это также может произойти после завершения этой фазы, интерпретации результирующей структуры данных), тогда псевдоним во включающем YAML уже должен быть разрешен во время его составная фаза.

Вам повезет больше, если использовать какую-нибудь систему шаблонов jinja2, для которой вы, конечно, можете также заполнить переменную, которая будет заменена из вашего файла YAML, общими этапами.

...