Как создать эффективную очередь сборки maven / jenkins

Мы используем Jenkins в качестве нашей системы CI и Maven в качестве инструмента сборки. У нас есть SVN-репозиторий для нашего кода и Artifactory для наших артефактов.

Исходный код организован как многомодульный проект maven. Большинство модулей вносят свой вклад в реальное приложение, но некоторые модули - это приложения, которые нам нужны в процессе сборки и тестирования.

В настоящее время у нас есть несколько задач для:

  • быстрого набора тестов фиксации
  • более обширных интеграционных тестов
  • покрытие кода и статический анализ кода
  • развертывание в тестовой среде
  • дымовые тесты для этой тестовой среды

Одним из недостатков нашего процесса сборки является то, что мы компилируем разные части проекта в разных задачах, некоторые из части снова и снова. Вместо этого я бы предпочел собрать все сразу после развертывания в артефакте и просто использовать эти артефакты для всего остального.

Но я не знаю, как убедиться, что:

  • Размер артефакта не увеличивается, потому что мы выгрузка сотен jar-файлов каждый день в нем
  • нисходящие сборки используют точный набор артефактов, созданных последним заданием сборки восходящего потока, а не какой-то странной смесью версий, потому что он выполняется одновременно со следующим заданием сборки, которое могло бы развернуть новое версия артефакта a, но не артефакта b.

Любая помощь, указатели или идеи приветствуются.

18
задан Adrian Mitev 19 April 2014 в 21:20
поделиться