Непрерывное интегрирование (CI) является практикой объединяющихся изменений кода в общий репозиторий на частом базисе. Это улучшает пропускную способность команды и качество программного обеспечения путем автоматизации и стандартизации действий, таких как строительные нормы и правила, тестирование и упаковка. Например, каждый раз, когда разработчик продвигает новые переданные изменения в удаленном репозитории, непрерывная платформа интегрирования может автоматически запустить набор тестов, чтобы гарантировать, что изменения не вызывают конфликтов в целевой ветви удаленного репозитория.
Преимущества непрерывного интегрирования включают:
Нахождение проблем в программном обеспечении и фиксация их вскоре после того, как они введены.
Добавление большего количества опций при сокращении ресурсов требуется для отладки кода.
Минимизация издержек интегрирования и развертывания путем выполнения интегрирования на постоянной основе.
Очевидно передавая состояние программного обеспечения и изменений, которые были внесены в него.
Типичный рабочий процесс разработки программного обеспечения с помощью непрерывного интегрирования включает несколько шагов:
Клонирование удаленного репозитория и создание ветви функции
Редактирование файлов и передача изменений в локальном репозитории
Продвижение переданных изменений в удаленном репозитории (который инициировал автоматизированный конвейер задач, таких как компиляция файлов MEX, упаковочных тулбоксов и тестирования на платформе CI),
Анализирование докладов, сгенерированных платформой CI и фиксация ошибок в конвейере
Слияние удаленной функции переходит в основную ветвь посредством запроса получения по запросу (который инициировал другой автоматизированный конвейер задач на платформе CI),
Анализирование докладов, сгенерированных платформой CI и решение отказов слияния
Этот рисунок показывает пример цикла разработки с помощью сервера CI Jenkins™ и инструментов управления исходным кодом с открытым исходным кодом, таких как Git™ и GitHub®. Для получения информации о том, как соединить интерфейсом с MATLAB® с Дженкинсом, смотрите Запущенные Тесты MATLAB на Сервере Дженкинса.
Разработайте оценку и передайте свои изменения в локальном репозитории:
Клонируйте репозиторий GitHub и создайте ветвь новой возможности.
Внесите изменения в существующие файлы или добавьте новые файлы как соответствующие.
Запустите MATLAB и тесты Simulink®, чтобы квалифицировать изменения и передать их локальному репозиторию.
Запустите автоматизированный конвейер задач (включая тестирование), когда вы продвигаете свои изменения в удаленном репозитории или когда вы выполняете запрос получения по запросу:
Инициируйте автоматизированный конвейер задач на Дженкинсе путем продвижения переданных изменений в GitHub или путем выполнения запроса получения по запросу, чтобы объединить удаленную ветвь функции в основную ветвь.
Дженкинс запускает автоматизированный конвейер, включая MATLAB и тесты Simulink, и генерирует артефакты, как задано в настройке проекта.
Если вы не преуспеваете в том, чтобы продвинуть свои изменения или выполнить запрос получения по запросу, выполняете эти шаги:
Смотрите автоматизированные конвейерные результаты и сгенерированные тестовые артефакты. Внесите соответствующие изменения в свой код.
Инициируйте новый конвейер на Дженкинсе путем продвижения изменений в GitHub или путем выполнения запроса получения по запросу.
Инженеры интегрирования могут использовать тестовые артефакты Дженкинса, чтобы решить, когда объединить ветвь функции в основную ветвь.
Можно выполнить непрерывную интеграцию с MATLAB на различных непрерывных платформах интегрирования. Можно запустить и протестировать код MATLAB и модели Simulink, сгенерировать артефакты и опубликовать результаты на платформы. Для получения дополнительной информации смотрите Непрерывную Интеграцию с MATLAB на Платформах CI.
В дополнение к MATLAB различные тулбоксы поддерживают непрерывные рабочие процессы интегрирования. Эта таблица приводит общие непрерывные варианты использования интегрирования для моделей и кода.
Тулбокс | Вариант использования | Больше информации |
---|---|---|
Simulink |
| О системе контроля версий с проектами (Simulink) Используя проект с Git (Simulink) Совместно используйте файлы кэша Simulink для более быстрой симуляции (Simulink) |
Simulink Test™ | Запустите тестовые файлы на платформах CI и соберите совместимое с CI покрытие с помощью Simulink Coverage™ | Непрерывное интегрирование (Simulink Test) |
Simulink Check™ | Используйте Дженкинса, чтобы обнаружить метрические пороговые нарушения в модели | Зафиксируйте метрические пороговые нарушения в непрерывном системном рабочем процессе интегрирования (Simulink Check) |
Simulink Requirements™ | Обобщите результаты верификации требований для тестового прогона на платформах CI | Включайте результаты внешних источников в состояние верификации (Simulink Requirements) |
Polyspace® Bug Finder™ Server™, сервер Polyspace Code Prover™ |
| Запустите анализ Bug Finder сервера во время непрерывного интегрирования (Polyspace Bug Finder Server) Запустите анализ программы автоматического доказательства кода сервера во время непрерывного интегрирования (Polyspace Code Prover Server) |
matlab.unittest.plugins Package