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