Montarea unui mediu local de integrare continuă pentru aplicații mobile (iOS, Android)

Content Index

  1. Introducere
  2. Setări
  3. xcode bots
  4. jenkins
  5. Android sdk
  6. Configurarea lui Jenkins

Introducere

Astăzi există multe soluții pentru a oferi evoluțiile mobile ale unui mediu de integrare continuă. În multe cazuri, cea mai ușoară, mai puțin costisitoare și mai rapidă este de a utiliza servicii terțe (SaaS), cum ar fi Buddybuild, etc., care se conectează cu depozitul nostru nor.

pentru bine sau pentru rău , în funcție de client cu care suntem atinși, este posibil să nu putem folosi niciunul dintre aceste servicii, bine pentru că clientul însuși nu o aprobă sau, în consecință, de propriile sale restricții de siguranță (un depozit privat fără acces exterior și fără permisiune Conectați-vă prin VPN). Înainte de panorama, avem două opțiuni:

  • nu aveți integrare continuă (opțiune rău)
  • rulați propriul mediu de integrare continuă (opțiunea mai puțin rău)

Mediu

Tutorialul este scris folosind următorul mediu:

  • Hardware: Mac Mini (2018) (3 GHz Intel Core i5, 16 GB 2667 MHZ DDR4)
  • Sistem de operare: Mac OS X Catalina 10.15.3
  • Jenkins 2.204.5
  • Fastlane 2.143.0
  • xcode 11.3 .1
  • Android SDK (Instrumente de linie de comandă) Cele mai recente

Setări

În cazul dezvoltării Backend nu este atât de neobișnuit ca Monten Echipe propriile medii de integrare continuă (în dependenți avem câteva tutoriale despre Jenkins), dar în cazul dezvoltării mobile există orice altă limitare.

Aplicația noastră are versiuni native în iOS și Android. Pentru a compila aplicația Android, va trebui să avem instalat SDK pe serverul nostru. În cazul iOS, avem nevoie, de asemenea, da sau da serverul nostru rulează MacOS, este imposibil să compilați astăzi orice aplicație iOS dintr-un alt sistem de operare. Astfel, un Mac Mini a fost decis ca un server de integrare continuă atât pentru aplicația Android, cât și pentru iOS. Pentru aceasta, pe Mac Mini, avem nevoie de următoarele:

  • xcode: Va fi responsabil pentru compilarea aplicației iOS și va acționa ca server xcode pentru a trece testele.
  • Android SDK: necesar pentru a putea compila aplicația Android

  • jenkins: va fi folosit pentru a trece testele Android și, în general, automatizarea oricărei alte sarcini, cum ar fi generația de noapte beta.
  • Fastlane: utilitate foarte bine cunoscută în lumea mobilă, în special în iOS pentru a ajuta la îndeplinirea sarcinilor. În cazul nostru îl folosim pentru a genera beta de iOS și Android și implementează-le la platforma noastră de distribuție beta.

xcode bots

pentru a trece testele iOS, în Cazul nostru, am ales prin utilizarea roboților XCODE. Xcode Bots au un comportament deosebit, pe de o parte, serverul (în cazul nostru Mac Mini) va fi responsabil pentru compilarea și executarea testelor, dar botul este creat din echipa noastră.

primul lucru pe care îl primim ar trebui să facă acest lucru este activarea serverului xcode pe serverul nostru, pentru aceasta deschizăm xcode – >> server & Bots, și acolo activăm serverul.

"XcodeServer"

Odată ce serverul XCODE este activat, În local, am setat Xcode pentru a vă conecta cu serverul nostru în Xcode – > preferințe – > conturi

"XcodeServer"

Cu aceasta putem crea deja bot de la mașina noastră locală în produs – > creați bot, în pe care un asistent ne va îndruma pas cu pas. Ne va cere că, dacă vrem să adăugăm serverul ca membru al echipei de a gestiona schema semnată, schema, acțiunile care trebuie efectuate (teste, acoperire etc.) și acțiunile ulterioare.

Jenkins

Pentru a ne simplifica viața, cel mai ușor lucru este în cazul lui MacOS este de a instala Jenkins cu Brew.

Brew Install Jenkins

Noi poate schimba setările (IP, Port, etc) din fișier:

/usr/local/cellar/jenkins/2.xx/homebrew.mxcl.jenkins.plist (înlocuiți 2.xx de către corespunzătoare Versiune

Dacă vă dorim, de asemenea, să continuați să vă conectați, o putem adăuga, de asemenea, ca daemon cu:

Servicii de preparare Brew Start Jenkins

Odată instalat ar trebui să poată accesa Jenkins din browserul nostru (implicit http://localhost:8080).

Prima dată când începem Jenkins Va trebui să urmărim pașii care ne indică să finalizăm instalatia.

Android SDK

Înainte ca Jenkins să poată trece testele Android, trebuie să instalăm SDK-ul Android. Nu este necesar să descărcați Android Studio complet, suntem interesați doar de SDK. Pentru acest lucru accesăm https://developer.android.com/studio#downloads și în „Opțiuni de descărcare”, sub „Instrumente de comandă numai”, putem descărca zipul corespunzător pentru MacOS.
După ce am descărcat ceea ce ne-am dezmembrat de unde noi Consultați (în cazul nostru, l-am lăsat la Jenkins ~ / .jenkins). Va trebui să acceptăm licențele, pentru că am deschis un terminal, ne-am mutat în directorul SDK, în cazul nostru:

~ / .jenkins / android_sdk / instrumente / bin

Și executăm:

./ SDKManager – Lentile

ne va cere dacă acceptăm condițiile. Acest lucru este necesar sau dacă nu va eșua când încercăm să ne compilem aplicația Android de la Jenkins. Cu aceasta, ar trebui să putem crea deja locurile de muncă ale lui Jenkins să treacă testele.

Configurarea Jenkins

Vom începe să creăm variabila globală Android_Home. Pentru a face acest lucru de la Gestionarea Jenkins – > Configurare sistem, sub proprietăți globale, creăm o variabilă Android_Home îndreptată spre SDK-ul nostru.

"Jenkins"

Asigurați-vă că aveți instalat pluginurile GRADDLE, Plugin HTML Publisher și Finder de text de la Gestionați Jenkins – > Plugins. În plus, putem instala un plugin pentru a notifica rezultatele lucrărilor în funcție de preferințele / resursele noastre (de exemplu, slăbiciunea).

cu aceasta ar trebui să ne creăm deja slujba, pentru că de la Jenkins ” Tabloul de bord principal, faceți clic pe articol nou – > Freestyle Project. Configurează depozitul, declanșatoarele de construcție și apăsați pe Add Build Step – > Invocați scriptul de calitate. Folosim folosirea învelișului de legare și indicați sarcina de alunecare cu care să treceți testele.

"Jenkins"

pentru a afișa rezultatele Într-un mod mai confortabil, în acțiunile post-construite, adăugăm publicitate rapoarte HTML, indicând dosarul proiectului nostru în care sunt stocate rezultatele testelor.

"Report"

În cele din urmă, în cazul nostru pentru a trece toate testele și nu întrerupeți prima hotărâre, în fișierul nostru de construcție. Am configurat următoarele:

shell

iv id = ”

1
3
6
7
unittests.reurndefaultvalues = adevarat
UNITTETS.ALL {
StigloreFailures (TRUE)
}

Acest lucru, deși pe o parte permite Jenkins să job toate testele și să ne spună ce se întâmplă și care nu face ca marca de locuri de muncă să fie stabilă, chiar dacă testele eșuează. Ca o soluție rapidă alegem să folosim pluginul Jenkins „Text-Finder” pentru a identifica când toate testele nu au trecut.

"Finder"

Cu aceasta am putea deja să trecem testele pe aplicația android.

Concluzii

Având configurarea propriului dvs. mediu de integrare continuă este un proces destul de dificil , Complicate și, de asemenea, necesită asamblarea răbdării și întreținerii periodice. În partea pozitivă este că oferă o mulțime de flexibilitate, deoarece puteți utiliza orice instrument pe care îl aveți la îndemână pentru a automatiza acele sarcini pe care le propuneți.

Dacă pentru a obține clientul clientului Are un proxy care se ridică la pătrat, deși poate fi tras cu unelte cum ar fi Squidman, pentru a nu avea scripturi prin mai multe scripturi diferite.

div>

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *