Непрерывная Интеграция. Условие Circleci Основано На Том, Какая Часть Монорепозитория Изменилась?

  • Автор темы Perviy22ivan
  • Обновлено
  • 21, Oct 2024
  • #1

Я работаю над проектом монорепо, который содержит несколько разных подпроектов на разных языках. Прямо сейчас я запускаю три разных «задания» CircleCI для каждого коммита. Однако каждый из этих пакетов компилируется и тестируется независимо. Следовательно, мне фактически не нужно каждый раз тратить время на выполнение всех трех задач.

Есть ли способ определить задание CircleCI, в каком каталоге вы сохранили код?

#непрерывная интеграция #непрерывная доставка #build-pipeline #circleci-2.0 #monorepo

Perviy22ivan


Рег
02 Oct, 2022

Тем
83

Постов
217

Баллов
652
  • 25, Oct 2024
  • #3

Мы используем CircleCI с Идти монорепо.

Вот как это делается:

  1. Определите задание для каждой службы в yaml конфигурации круга.
  2. Git push запускает задание CircleCI, которое определяет, какие сервисы являются частью изменения.
  3. Для каждой службы запустите задание CircleCI с:
 lerna changed -a 

Также опубликовано в открытом доступе: https://github.com/Tufin/circleci-monorepo

 

Vovanfenix


Рег
09 Apr, 2013

Тем
73

Постов
181

Баллов
546
  • 25, Oct 2024
  • #4

Я пришел сюда в дополнение к предыдущим ответам @effi-bar-shean и @langkilde, которые дают хороший обзор проблемы. Мой ответ будет сосредоточен на JavaScript.

Как использовать измененную часть монорепо?

Вы можете использовать 2.0 API из КругCI которые позволяют запускать несколько рабочих процессов отдельно. Если у вас есть монорепозиторий JavaScript, вы можете использовать такой инструмент, как Лерна для запуска рабочего процесса по вашему выбору

Пример: { "build_parameters": { "CIRCLE_JOB": "my-service" } } gives you all repository that have changed then you have to trigger the workflow of theses packages. You can see a Выход

полный пример здесь Вот пример

репозитория для монорепозитория Javascript

 

Illiffsob68


Рег
25 Oct, 2024

Тем
65

Постов
197

Баллов
542
Похожие темы Дата
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно