exponenta event banner

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

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

Преимущества непрерывной интеграции:

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

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

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

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

Поток операций непрерывной интеграции

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

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

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

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

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

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

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

На этом рисунке показан пример цикла разработки с использованием сервера Jenkins™ CI и инструментов управления исходным кодом с открытым исходным кодом, таких как Git™ и GitHub ®. Сведения об интерфейсе MATLAB ® с Jenkins см. в разделе Запуск тестов MATLAB на сервере Jenkins .

An example of the development cycle using continuous integration

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

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

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

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

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

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

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

  1. Запустите автоматизированный конвейер задач на Дженкинсе, переместив зафиксированные изменения в GitHub или сделав запрос на слияние удаленной ветви функций в главную ветвь.

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

Этап 3: Изучение и устранение сбоев

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

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

  2. Запустите новый конвейер на Дженкинсе, переместив изменения в GitHub или сделав запрос на извлечение.

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

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

Можно выполнять непрерывную интеграцию с MATLAB на различных платформах непрерывной интеграции. Можно запускать и тестировать код MATLAB и модели Simulink, создавать артефакты и публиковать результаты на платформах. Дополнительные сведения см. в разделе Непрерывная интеграция с MATLAB на платформах CI.

Помимо MATLAB, различные панели инструментов поддерживают непрерывные рабочие процессы интеграции. В этой таблице перечислены общие сценарии использования непрерывной интеграции для моделей и кода.

ИнструментыСценарий использованияДополнительные сведения
Simulink

  • Создание и тестирование моделей и проектов

  • Кэширование файлов для моделирования и создания кода

Сведения об системе управления версиями с проектами (Simulink)

Использование проекта с Git (Simulink)

Совместное использование файлов кэша Simulink для более быстрого моделирования (Simulink)

Симулинк Test™

Запуск тестовых файлов на платформах CI и сбор CI-совместимого покрытия с помощью Simulink Coverage™

Непрерывная интеграция (Simulink Test)

Симулинк Check™

Использование Jenkins для обнаружения нарушений метрических пороговых значений в модели

Устранение нарушений метрического порога в рабочем процессе систем непрерывной интеграции (Simulink Check)

Симулинк Requirements™Обобщение результатов проверки требований для тестов, выполняемых на платформах CI

Включение результатов из внешних источников в статус проверки (требования Simulink)

Сервер Polyspace ® Bug Finder™ Server™, Polyspace Code Prover™

  • Выполнение анализа Polyspace для кода C/C + + в рамках непрерывной интеграции, например, с Jenkins

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

  • Отправка уведомлений по электронной почте с результатами поиска ошибок Polyspace или проверки кода Polyspace

Выполнение анализа ошибок на сервере во время непрерывной интеграции (сервер поиска ошибок Polyspace)

Выполнение анализа проверки кода на сервере во время непрерывной интеграции (сервер проверки кода Polyspace)

См. также

Связанные темы

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