Как настроить работу gitlab-ci для повторного использования работы всех филиалов в конкретной задаче только для мастера?

Я работаю с Gitlab-CI, и я думаю об одной задаче для всех филиалов, которые в основном можно рассматривать как какие-то модульные тесты и другую работу, посвященную мастер-ветке, которая, например, копирует и выполняет некоторые фактические действия. Задание unit-tests должно выполняться на всех ветвях.

Мне интересно, можно ли перекрывать сценарии, так что в основном все задание ветвей может быть выполнено до того, как мастер-сервер станет своего рода валидацией.

Идея состоит в том, чтобы обеспечить соблюдение двух условий, доступных в запросах на слияние:

  • Разрешать только запросы на объединение, если конвейер успешно завершен
  • Разрешать только запросы на объединение, если все обсуждения разрешены

Я немного .gitlab-ci.yml следующим образом:

 job_all_branches: script: - unit-tests job_master_branch: script: - copy-files only: - master 

Конечно, можно упомянуть, что мы можем скопировать и вставить скрипт unit-tests из задания всех филиалов в скрипты, вызванные в job_master_branch, но мне интересно, есть ли способ избежать избыточного определения.

Выяснилось решение, на самом деле это было очень просто, мне просто пришлось использовать этапы …:
https://docs.gitlab.com/ee/ci/yaml/#stages
https://about.gitlab.com/2016/07/29/the-basics-of-gitlab-ci/

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

 stages: - test - deploy test_job: stage: test script: - ./my-test-script.sh allow_failure: false tags: - my - lovely - test - runner deploy_job: stage: deploy script: - ./my-deploy-script.sh allow_failure: false only: - master tags: - my - lovely - deployment - runner 

И поэтому они обрабатываются последовательно 🙂