Я пытаюсь улучшить наш процесс непрерывной интеграции, используя Jenkins и нашу систему управления версиями (в настоящее время svn, но git скоро).
Возможно, я думаю об этом слишком сложном, а может быть, я не но видел правильные подсказки. изменения кода для фактического программного обеспечения («основное программное обеспечение»), а также модульные тесты в системе управления версиями (git или что-то еще). Дженкинс должен собрать программное обеспечение, запустить модульные тесты и, возможно, некоторые другие шаги (например, анализ кода stati c). Если ничего из этого не вышло, работа разработчиков сделана. Как часть сборки, номер сборки встроен в само основное программное обеспечение как часть номера версии.
один или несколько
инженеров-испытателей впоследствии заберут сборку и проведут тесты. Некоторые из них могут быть ручными, большинство из них желательно автоматизировать / тестировать по сценариям.
В конечном итоге они также должны быть переданы в систему контроля версий и выполняться через сервер сборки. Однако это не приведет к запуску новой сборки основного программного обеспечения (поскольку ничего не изменилось). Если ничего из этого не вышло, инженеры-испытатели закончили. Обратите внимание, что наши автоматические тесты в настоящее время занимают несколько часов. В качестве последнего шага
менеджер проекта разрешает выпуск программного обеспечения, которое выполняет все необходимые шаги по доставке / развертыванию. Кроме того, исходный код основного программного обеспечения, модульных тестов и сценариев автоматического тестирования, сценарий сборки jenkins - и в идеале все артефакты сборки («двоичные файлы») - заархивированы (помечены) в системе управления версиями.
В идеале разработчики могут также вручную запускать выполнение автоматических тестов, чтобы «предварительно просмотреть» результат своей сборки.
Мне не удалось понять, как это сделать с Jenkins и Git - или любая другая система контроля версий.
Конвейеры Jenkin, кажется, предполагают, что все шаги выполняются последовательно автоматически. Также, похоже, предполагается, что фиксация кода в системе управления версиями начинается с самого начала (что, я считаю, неверно, если фиксация была «просто» сценариями автоматизированного тестирования). Запуск ненужной сборки основного программного обеспечения действительно вредит нашему процессу, так как он в основном делает недействительными ручное тестирование и документацию, так как это приводит к добавлению нового номера сборки в программное обеспечение.
Если мой подход настолько необычен, пожалуйста подскажите, как это сделать правильно. В противном случае я был бы признателен за указатели, как это сделать (концептуально).