Spec-Zone.ru › Swift

Непрерывная интеграция Swift

Проект Swift использует модель поэтапного развития и непрерывную интеграцию (CI) для тестирования изменений в запросах на добавление (pull request) перед их слиянием, как ключевой инструмент для поддержания стабильности проекта. Система генерирует снимки сборок, публикуемые на swift.org, и выполняет тесты по активным веткам. Она также используется в процессе проверки, выполняя тесты по запросам на добавление (pull request) перед их подтверждением.

Настройка

Наша система непрерывной интеграции основана на Jenkins и в настоящее время поддерживает сборку и тестирование на macOS, Ubuntu 18.04, Ubuntu 20.04, Ubuntu 22.04, CentOS 7 и Amazon Linux 2. Также поддерживается тестирование в симуляторах iOS, tvOS и watchOS.

Организация задач

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

  • Разработка - Все задачи, настроенные на сборку с основной веткой
  • Swift 5.6 - Все задачи, настроенные на сборку с веткой release/5.6
  • Пакеты - Задачи, которые создают инструментальные цепочки для основных и release/5.6 веток
  • Запрос на добавление (Pull Request) - Задачи, которые проверяют запросы на добавление (pull request) из GitHub перед слиянием в основную ветку.

Использование

Существует несколько способов взаимодействия с системой CI swift.org:

  • Статус задач интеграции - вы можете просмотреть статус сборки и тестирования всех задач интеграции по адресу https://ci.swift.org.
  • Тестирование запросов на добавление (pull request) - при внесении изменений через запрос на добавление (pull request), ваши изменения будут протестированы перед интеграцией, а результаты будут опубликованы непосредственно в запросе.

Более подробную документацию по использованию можно найти здесь.

Тестирование запросов на добавление (Pull Request)

При рассмотрении изменений в запросе на добавление (pull request) член команды Swift инициирует тестирование с помощью системы CI. Тестирование может быть запущено на платформах macOS, Linux или на обеих.

pull request CI trigger

Статус тестирования публикуется в строке запроса на добавление (pull request), показывая, что тест выполняется. Вы можете нажать на ссылку «детали», чтобы перейти непосредственно на страницу статуса в процессе тестирования.

CI Progress

По окончании тестирования результат также обновляется в запросе на добавление (pull request).

CI Pass

Если во время тестирования будут обнаружены проблемы, вы получите ссылку на детали сбоя.

CI Pass

Ожидается, что изменения соответствуют стандартам качества проекта Swift перед их подтверждением в ветке разработки, и вы несете ответственность за исправление проблем, найденных в ваших изменениях. Если ваши изменения нарушают сборку или тесты в ветках разработки или релизов, вы получите уведомление по электронной почте.

Участие сообщества

Проект Swift приветствует предложения сообщества по добавлению поддержки других конфигураций.

Непрерывная интеграция, размещенная сообществом Swift

Члены сообщества могут добровольно размещать узлы для дополнительных платформ на Непрерывной интеграции, размещенной сообществом Swift, и несут ответственность за поддержку системы хостинга. Новые узлы могут быть инициированы путем создания запроса на добавление (pull request) по адресу: Репозиторий непрерывной интеграции сообщества Swift. Дополнительную информацию о процессе можно найти в README.md.

Непрерывная интеграция, размещенная сообществом Swift, позволяет перемещать неподдерживаемые платформы на поддерживаемую платформу на индивидуальной основе. В зависимости от количества предоставленных узлов, тестирование запросов на добавление (pull request) @swift-ci может быть интегрировано с непрерывной интеграцией, размещенной сообществом.

The Swift Programming Language, Copyright © 2014-2025 Apple Inc.
Swift and the Swift logo are trademarks of Apple Inc.

Documentation for Swift 6.0.3


https://www.swift.org/documentation/continuous-integration/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API