Разрабатывайте и интегрируйте программное обеспечение с непрерывным интегрированием

Непрерывное интегрирование (CI) является практикой интеграции изменений кода в общий репозиторий на частом базисный. Это повышает пропускную способность команды и качество программного обеспечения за счет автоматизации и стандартизации таких действий, как создание кода, проверка и упаковка. Например, каждый раз, когда разработчик толкает новые зафиксированные изменения в удаленный репозиторий, платформа непрерывного интегрирования может автоматически запускать набор тестов, чтобы убедиться, что изменения не вызывают конфликтов в целевой ветви удаленного репозитория.

Преимущества непрерывного интегрирования включают:

  • Поиск проблем с программным обеспечением и их устранение вскоре после их внедрения.

  • Добавление дополнительных функций с одновременным сокращением ресурсов, необходимых для отладки кода.

  • Минимизация накладных расходов на интегрирование и развертывание путем выполнения интегрирования на непрерывном базисный.

  • Четкое информирование о состоянии программного обеспечения и о внесенных в него изменениях.

Рабочий процесс непрерывного интегрирования

Типичный рабочий процесс разработки программного обеспечения с использованием непрерывного интегрирования включает несколько шагов:

  1. Клонирование удаленного репозитория и создание ветви функции

  2. Редактирование файлов и фиксация изменений в локальном репозитории

  3. Перенос зафиксированных изменений в удаленный репозиторий (что запускает автоматический конвейер задач, таких как компиляция файлов MEX, пакетные тулбоксы и проверку на платформе CI)

  4. Анализ отчетов, сгенерированных платформой CI, и исправление ошибок в трубопроводе

  5. Объединение удаленной ветви функции в главную ветвь через запрос извлечения (который запускает другой автоматизированный конвейер задач на платформе CI)

  6. Анализ отчетов, сгенерированных платформой CI, и устранение отказов слияния

Этот рисунок показывает пример цикла разработки с использованием сервера Jenkins™ CI и инструментов управления исходным кодом с открытым исходным кодом, таких как Git™ и GitHub®. Для получения информации о интерфейсе MATLAB® с Дженкинсом см. «Запуск тестов MATLAB на сервере Jenkins Server».

An example of the development cycle using continuous integration

Фаза 1: Разработка и квалификация функции в локальном репозитории

Разрабатывайте функцию и фиксируйте свои изменения в локальном репозитории:

  1. Клонируйте репозиторий GitHub и создайте новую возможность ветвь.

  2. Внесите изменения в существующие файлы или добавьте новые файлы по мере необходимости.

  3. Запуск MATLAB и Simulink® проверяет, чтобы проверить изменения и зафиксировать их в локальном репозитории.

Фаза 2: Запуск автоматизированного трубопровода на платформе непрерывного интегрирования

Запустите автоматический конвейер задач (включая проверку), когда вы толкаете свои изменения в удаленный репозиторий или когда вы делаете запрос на извлечение:

  1. Инициируйте автоматический конвейер задач на Jenkins, проталкивая зафиксированные изменения в GitHub или выполнив запрос pull, чтобы объединить удаленную ветвь функции в главную ветвь.

  2. Дженкинс запускает автоматический трубопровод, включая тесты MATLAB и Simulink, и генерирует программные продукты, как указано в строении проекта.

Фаза 3: Расследование и устранение отказов

Если вам не удается продвинуть изменения или сделать запрос на получение, выполните следующие шаги:

  1. Смотрите результаты автоматизированного трубопровода и сгенерированные программные продукты испытаний. Внесите соответствующие изменения в код.

  2. Инициируйте новый конвейер на Jenkins, проталкивая ваши изменения в GitHub или делая запрос на извлечение.

Инженеры интегрирование могут использовать программные продукты Дженкинса, чтобы решить, когда объединить ветвь функции в основную ветвь.

Непрерывное интегрирование с продуктами MathWorks

Вы можете выполнить непрерывное интегрирование с 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

  • Запустите анализ Polyspace на коде C/C + + как часть непрерывного интегрирования, например с Дженкинсом

  • Загрузите результаты анализа (ошибки, ошибки времени выполнения или стандартные нарушения кодирования) для просмотра в веб-интерфейсе Polyspace Access

  • Отправляйте уведомления по электронной почте с результатами Polyspace Bug Finder или Polyspace Code Prover

Запуск анализа Bug Finder на сервере во время непрерывного интегрирования (Polyspace Bug Finder Server)

Запуск анализа Code Prover на сервере во время непрерывного интегрирования (Polyspace Code Prover Server)

См. также

Похожие темы

Внешние веб-сайты