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