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