>_ IzzyLab

Практическое задание

GitLab CI: наследование через extends

средне

В /root/.gitlab-ci.yml опиши скрытый шаблон-джоб .base (с image и before_script) и джоб test, который наследует его через extends. Проверка сверит файл с официальной схемой GitLab CI — запусти yamlschema gitlab-ci /root/.gitlab-ci.yml, чтобы увидеть ошибки.

Что потренируешь:
  • gitlab ci
  • extends
  • шаблоны джобов
  • наследование
  • yaml

Разбор темы

extends в GitLab CI переиспользует конфигурацию job'а без копипасты: наследник забирает все поля родителя и может часть переопределить своими. Мапы мёржатся рекурсивно, а вот одноимённые списки (например script) не дописываются, а полностью заменяются значением наследника. Шаблоны принято прятать от запуска: job, чьё имя начинается с точки, GitLab не считает настоящим и в пайплайн сам по себе не добавляет — это заготовка исключительно под extends.

Что проверяется

  1. конфиг проходит схему GitLab CI
  2. test наследует .base

Как это выглядит