Мы используем Jenkins как нашу систему CI и Maven как наш инструмент построения. У нас есть SVN-репозиторий для нашего кода и Artifactory для наших артефактов.
Исходный код организован как мультимодульный проект maven. Большинство модулей вносят вклад в реальное приложение, но некоторые модули являются приложениями, которые необходимы во время процесса сборки и тестирования.
У нас есть несколько заданий для:
- быстрый набор тестов фиксации
- более обширные интеграционные тесты
- охват кода и анализ статического кода
- развертывание в тестовой среде
- тесты дыма для этой тестовой среды
Одной из слабых сторон нашего процесса сборки является то, что мы собираем разные части проекта на разных рабочих местах, причем некоторые части снова и снова. Вместо этого я предпочел бы построить все, как только вы разместите его до искусственного, и просто используйте эти артефакты для всего остального.
Но я не знаю, как убедиться, что:
- Размер artifactory не взрывается, потому что каждый день мы сбрасываем сотни банок.
- В строках ниже по потоку используется точный набор артефактов, созданных последним заданием сборки вверх, а не какая-то странная смесь версии, потому что он работает одновременно с следующим заданием сборки, которое могло бы использовать новую версию артефакта a, но не артефакта б.
Любая помощь, указатели или идеи оценены.