Как да създадете iOS система за изграждане при поискване с Jenkins и Fastlane

Тази статия е за създаване на iOS компилации чрез Jenkins BOT, дистанционно, без нужда от разработчик.

Преди да започна, искам да кажа, че това е първата ми статия. Така че не се колебайте да оставите коментар, ако нещо може да се подобри :)

Защо това е добра идея?

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

Xcode (IDE) отнема значително време, за да компилира и генерира тази компилация. Това означава, че всеки човек, който се нуждае от компилацията, ще трябва да инсталира IDE, да клонира хранилището, да създаде идентичност за подпис и сертификат и след това да създаде самата компилация. Или зависи от разработчика да създаде такъв за тях.

По време на процеса на създаване на компилация IDE е неизползваем. Това силно влияе върху производителността на разработчика. В моята компания средното време за изграждане на .ipa е около 20 минути. Средно разработчикът прави 2-3 компилации на ден.

Това означава, че 5 работни часа седмично се губят.

Но какво ще стане, ако има автоматизирана система, която може да генерира компилации сама? Това ще освободи разработчиците от тази отговорност. Това също би направило възможно всеки да получи лесно компилация.

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

Осигуряването на компилациите лесно достъпни за тестери и разработчици гарантира, че хората могат да тестват функции по-бързо и да доставят по-лесно продукцията. Това подобрява производителността на екипите за разработка. Също така подобрява качеството на продуктите, насочени към производството.

Да започнем сега.

Предпоставки

Ще ви трябва:

  • macOS Machine (по-добре е да го стартирате на продукти на Mac)
  • 10 GB дисково пространство (за Jenkins)
  • Инсталирана Java 8 (или JRE, или Java Development Kit (JDK) е добре)

    //www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Допълнителни приставки за инсталиране

  • домашен
  • wget
  • RVM приставка

    Ръководство за инсталиране

    //rvm.io/rvm/security

Направете един клон с файл в него с името Jenkinsfileс примерен код:

node {

sh ‘echo HelloWorld’

}

Нека го наречем jenkins-интеграция . Ще се върна към това по-късно.

  • Инсталирайте Xcode на вашата машина от App Store
  • Инсталирайте Fastlane на вашата машина. Дженкинс ще използва вътрешно команди fastlane за генериране на компилации.

Сега нека преминем през него стъпка по стъпка.

Стъпка 1. Инсталирайте Jenkins на вашата машина

Можете да инсталирате на MacBook или mac-mini. Mac-mini е предпочитан, тъй като може да се поддържа жив.

Изтеглете Jenkins -> //jenkins.io/

Стартирайте java -jar jenkins.war --httpPort = 8080 в командния ред. Ако получавате грешка в терминала, опитайте друг порт (например 9090), тъй като понякога някои портове не са налични.

Отидете до // localhost: 8080 и следвайте инструкциите, за да завършите инсталацията.

След това добавете администраторски идентификационни данни и не ги забравяйте (както направих и аз: P). По-късно можете да отидете на Дженкинс> Управление на Дженкинс> Потребители на мениджъра и да направите промените, ако е необходимо.

Стъпка 2. Създаване на първия ви тръбопровод

Създайте нова работа и изберете Pipeline Project .

За да проверите вашия проект, в раздела Pipeline, в Definition, изберете Pipeline Script от SCM и в SCM изберете Git

След това добавете вашия репо URL и добавете идентификационните данни, ако това е частно репо. В клонове за изграждане добавете * / jenkins-интеграция,клонът, който създадохме по-рано.

Уверете се, че Script Path е Jenkinsfile, който сме създали в новия ни клон. Всички скриптове ще бъдат написани в този Jenkinsfile.

Кликнете върху Запазване и Jenkins автоматично ще сканира вашето репо със споменатия клон и ще стартира скрипта на Jenkinsfile.

Сега сме готови да конфигурираме нашия Jenkinsfile за създаване на компилации

Стъпка 3. Добавете параметри към заданието

Въведете потребителско въвеждане за

  • клон
  • среда (тест или прод)

За това трябва да конфигурираме нашия проект да приема входни параметри за работа.

Отидете в раздела Конфигуриране и проверете Този проект е параметризиран .

След това изберете добавяне на параметър и съответно добавяне на същия.

Когато кликнете върху запазване, ще видите нов раздел отляво - & g t; Изграждане с Paramet ers. Това ще бъде потребителският интерфейс за извършване на компилации.

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

Стъпка 3. Конфигуриране на Jenkins Script

Ще създаде множество стъпки в нашия Jenkinsfile, като всеки носи една отговорност, и ще създаде приятен потребителски интерфейс, когато бъде изграден.

Отидете на вашия Jenkinsfile и заменете скрипта със следното:

Първо проверете клона чрез параметъра, който добавихме по-рано. Добавете вашето репо и GitHub токен.

Сега маркерът GitHub не трябва да се вижда от другите. За да направите това, отидете на Управление на Дженкинс - & g t; Конфигурирайте Sys tem -> Глобални свойства и добавете github Token като променлива на средата.

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

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

Ако се изисква подписване на код, направете това, като използвате ad-hoc . Можете да използвате разработка или магазин за приложения въз основа на вашите нужди.

След това създайте компилации, като използвате командата за фитнес в fastlane.

Стъпка 4. Стартирайте заданието

Сега нашият скрипт е готов. Отидете на Jenkins и отворете Build with Parameters.

Той ще започне да изпълнява скрипта и ще създаде приятен потребителски интерфейс с множество стъпки, както е споменато в Jenkinsfile.

Когато работата приключи, отидете на проекта Users / agammahajan / .jenkins / workspace / iOS_Build_Systems

и ще видите, че .ipa е създаден. Voilà!

Сега можете да споделите тази компилация с други. Можете да използвате приставката Slack, за да качите компилациите в Slack, ако искате.

Обобщавайки

За да завършим тук, можем да видим колко лесно е да настроим автоматизиран бот, който позволява на всеки човек да задейства компилации само в 2 стъпки: Дайте клон-> Тестова среда-> Готово

Това помогна на мен и моите колеги разработчици да подобрим производителността и да доставим по-бързо. Това също е помогнало на екипа за QA, така че да не се налага да разчитат на разработчиците всеки път, когато трябва да тестват нещо. Надявам се да е от полза и за вас, и за вашата компания.

От тук нататък възможностите са безкрайни.

  1. Можете да правите планирани задачи, за да генерирате нощни компилации.
  2. Качване на компилации директно в App Store.
  3. Кеширайте компилациите, така че компилации със същата конфигурация не се генерират отново.
  4. Разпространение на IPA в дома за инсталиране на OTA (по въздуха).
  5. Направете CI-CD конвейер, за да стартирате автоматизирани тестове при всеки ангажимент и да ги подготвите за производство.