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

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

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

  • Нахождение проблем в программном обеспечении и фиксация их вскоре после того, как они введены.

  • Добавление большего количества опций при сокращении ресурсов требуется для отладки кода.

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

  • Очевидно передавая состояние программного обеспечения и изменений, которые были внесены в него.

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

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

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

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

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

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

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

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

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

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)

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 кода C/C++ как часть непрерывного интегрирования, например, с Дженкинсом

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

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

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

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

Смотрите также

Похожие темы

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