Как создать систему сборки iOS по требованию с помощью Jenkins и Fastlane

1656515532 kak sozdat sistemu sborki ios po trebovaniyu s pomoshhyu jenkins

автор Агам Махаджан

В этой статье говорится о создании сборников iOS через Jenkins BOT, удаленно, без необходимости разработчика.

1*RmcSmwPhUn8ljLiiwYxK0A

Прежде чем начать, хочу сказать, что это моя первая статья. Поэтому не стесняйтесь оставлять комментарии, если что-то можно улучшить.

Почему это хорошая идея?

Когда разработчик создает функцию, он тестирует ее QA, прежде чем запускать ее в производство. Таким образом сборку нужно предоставить команде QA с некоторыми тестовыми конфигурациями.

Xcode (IDE) занимает значительное время для компиляции и создания этой сборки. Это означает, что любому человеку, которому необходим сборник, придется установить IDE, клонировать репозиторий, создать удостоверение и сертификат, а затем создать сборку самостоятельно. Или зависеть от разработчика, чтобы создать его для них.

При создании сборки IDE не подходит для использования. Это сильно влияет на производительность разработчика. В моей компании среднее время сборки .ipa составляет около 20 минут. В среднем разработчик делает 2-3 сборника каждый день.
Это означает, что 5 рабочих часов в неделю тратятся впустую.

1*GFEYrijn6zJapmjaN2V4dA
Сколько времени займет строительство?

Но что если бы была автоматизированная система, которая могла бы создавать сборки самостоятельно? Это освободило бы разработчиков от этой ответственности. Это также позволит кому-либо легко получить конструкцию.

Дженкинс является одним из решений нашей проблемы.

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

Давайте начнем сейчас.

Предпосылки

Вам понадобится:

Необходимо установить дополнительные плагины

Создайте одну ветку с файлом в нем с именем Jenkinsfile с образцом кода:
node {
sh ‘echo HelloWorld’
}
Назовем это Дженкинс-интеграция. Вернемся к этому позже.

  • Установите Xcode на свой компьютер из App Store
  • Установите Fastlane на машину. Дженкинс будет внутренне использовать команды fastlane для создания сборников.

Теперь давайте рассмотрим это шаг за шагом.

Шаг 1. Установите Jenkins на свой компьютер

Можно установить на MacBook или Mac-mini. Преимуществен Mac-mini, поскольку его можно поддерживать в живых.

Скачать Jenkins -> https://jenkins.io/

Беги java -jar jenkins.war —httpPort=8080 в командной строке. Если вы получаете ошибку в терминале, попробуйте другой порт (например, 9090), поскольку иногда некоторые порты недоступны.

Выделите и следуйте инструкциям для завершения установки.

Затем добавьте учетные данные администратора и не забывайте их (как и я :P). Позже вы можете пойти к Дженкинс > Управление Дженкинсом > Менеджер Пользователи и внести изменения, если это необходимо.

Шаг 2. Создание вашего первого конвейера

Создайте новую работу и выберите Проект трубопровода.

1*cN7MqM8LaClcPg29kVGq_Q

Чтобы проверить свой проект, в разделе трубопровод, в определение, выбрать Сценарий конвейера от SCM а в СКМ выбрать Git

Затем добавьте URL-адрес репо и добавьте учетные данные, если это частное репо. В ветвях для постройки добавьте */Дженкинс-интеграция, ветвь, которую мы создали раньше.

Убедитесь, что путь к сценарию есть файл Дженкинса которую мы создали в нашем новом филиале. Все сценарии будут записаны в этом файле Jenkins.

1*l6wpHeIHZZ5ZuoTjcdJoLA

Нажмите «Сохранить», и Jenkins автоматически сканирует репо с помощью упомянутой ветви и запустит сценарий Jenkinsfile.

1*v7QhFuQlGH9YhjEruS52nw

Теперь мы готовы настроить наш файл Jenkins для создания сборников

Шаг 3. Добавьте параметры к заданию

Нужен вход пользователя для

  • отделение
  • среда (тестовая или производственная)

Для этого нам нужно настроить наш проект на получение входных параметров для задания.

Перейдите к Настроить раздел и проверь Этот проект параметризирован.
Затем выберите добавить параметр и добавьте его соответственно.

1*EfmwPbDPa-YwWAZ-rEU2cw

При нажатии кнопки «Сохранить» вы увидите новый раздел слева -> Постройте с помощью Parameters. Это будет пользовательский интерфейс для создания сборок.

1*msne-k6C4ksZdj8NpbGdrA

Эти параметры будут использоваться в нашем сценарии Дженкинса.

Шаг 3. Настройте Jenkins Script

Будет создано несколько шагов в нашем файле Jenkins, каждый из которых имеет одну ответственность, и создаст хороший пользовательский интерфейс, когда он будет создан.

Перейдите к своему Jenkinsfile и замените сценарий следующим:

Сначала проверьте ветку с помощью параметра, добавленного ранее. Разместите репо и маркер GitHub.

Теперь маркер GitHub не должен просматриваться для других. Для этого перейдите к Управляйте Дженкинсом-> Настроить Sysтем ->Глобальная поддержкаrties and добавить githubТокен как переменная среды.

Затем вызовите сценарий для изменения среды.

Затем запустите fastlane для очистки (удаление полученных данных, очистка, удаление файлов .dsym и т.п.).

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

Далее создайте сборки с помощью спортзал команда в фастлейне.

Шаг 4. Запустите работу

Теперь наш сценарий готов. Идите к Дженкинсу и откройте Создание параметров.

Он начнет запускать сценарий и создаст хороший пользовательский интерфейс с несколькими шагами, как указано в файле Jenkins.

1*atL19HWAh9PkfnyxjfcsMg

Когда работа будет завершена, переходите к проекту Users/agammahajan/.jenkins/workspace/iOS_Build_Systems
и вы увидите, что .ipa создан. Вуаль!

Теперь вы можете поделиться этой конструкцией с другими. Вы можете использовать плагин Slack для загрузки сборок в Slack, если хотите.

Подведению

В завершение мы видим, как легко настроить автоматизированный бот, который позволяет любому человеку запускать сборки всего в 2 шага: Дайте Отделение->Тестовая среда-> Готово.

Это помогло мне и моим коллегам-разработчикам повысить производительность и быстрее снабжать. Это также помогло команде QA, поэтому им не приходилось зависеть от разработчиков всякий раз, когда им нужно что-то тестировать. Надеюсь, это принесет пользу вам и вашей компании.

Отсюда возможности бесконечны.

  1. Вы можете выполнять запланированные задачи по созданию ночных сборок.
  2. Загружайте сборки прямо в App Store.
  3. Кешируйте сборки, чтобы сборки с такой же конфигурацией не генерировались снова.
  4. Распространение IPA внутри компании для установки OTA (по воздуху).
  5. Создайте конвейер CI-CD для запуска автоматизированных тестов для каждого комита и подготовьте их к производству.

Добавить комментарий

Ваш адрес email не будет опубликован.