Kako izraditi iOS sustav gradnje na zahtjev s Jenkinsom i Fastlaneom

Ovaj je članak o stvaranju iOS gradnji putem Jenkins BOT-a, na daljinu, bez potrebe programera.

Prije početka želim reći da je ovo moj prvi članak. Stoga slobodno ostavite komentar ako se nešto može poboljšati :)

Zašto je ovo dobra ideja?

Kada programer napravi značajku, oni je provjere kvalitete prije nego što je puste u proizvodnju. Dakle, izrada se mora podijeliti s QA timom s nekim testnim konfiguracijama.

Xcodeu (IDE) treba značajno vrijeme za sastavljanje i generiranje ove gradnje. To znači da bi svaka osoba kojoj je potrebna gradnja morala instalirati IDE, klonirati spremište, stvoriti potpisni identitet i certifikat, a zatim sama stvoriti gradnju. Ili ovisite o programeru koji će ih stvoriti za njih.

Tijekom postupka izrade gradnje, IDE je neupotrebljiv. To ozbiljno utječe na produktivnost programera. U mojoj tvrtki prosječno vrijeme izrade .ipe iznosi oko 20 minuta. U prosjeku programer dnevno napravi 2-3 gradnje.

To znači da se troši 5 radnih sati tjedno.

Ali što ako postoji automatizirani sustav koji bi mogao samostalno generirati gradnje? To bi programere oslobodilo ove odgovornosti. To bi također omogućilo svima da lako dobiju gradnju.

Jenkins je jedno od rješenja za naš problem.

Omogućavanje izrade lako dostupnih testera i programera osigurava da ljudi mogu brže testirati značajke i lakše ih isporučiti u proizvodnju. Ovo poboljšava produktivnost razvojnih timova. Također poboljšava kvalitetu proizvoda koji se potiču na proizvodnju.

Krenimo sada.

Preduvjeti

Trebat će vam:

  • macOS Machine (bolje je pokrenuti ga na Mac proizvodima)
  • 10 GB prostora na disku (za Jenkinsa)
  • Instalirana Java 8 (u redu je ili JRE ili Java Development Kit (JDK))

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

Dodatni dodaci za instaliranje

  • homebrew
  • wget
  • RVM dodatak

    Vodič za instalaciju

    //rvm.io/rvm/security

Napravite jednu granu s datotekom u kojoj se nalazi naziv Jenkinsfiles uzorkom koda:

node {

sh ‘echo HelloWorld’

}

Nazovimo to jenkins-integracija . Vratit ću se na ovo kasnije.

  • Instalirajte Xcode na svoj stroj iz App Storea
  • Instalirajte Fastlane na svoj stroj. Jenkins će interno koristiti naredbe fastlane za generiranje gradnji.

Prođimo sada korak po korak.

Korak 1. Instalirajte Jenkins na svoj stroj

Možete instalirati na MacBook ili mac-mini. Mac-mini je poželjniji jer se može održati na životu.

Preuzmi Jenkins -> //jenkins.io/

Pokrenite java -jar jenkins.war --httpPort = 8080 u naredbenom retku. Ako dobijete pogrešku na terminalu, pokušajte s drugim priključkom (na primjer, 9090) jer ponekad neki priključci nisu dostupni.

Dođite do // localhost: 8080 i slijedite upute za dovršetak instalacije.

Zatim dodajte vjerodajnice administratora i ne zaboravite ih (kao što sam to učinio i ja: P). Kasnije možete otići na Jenkins> Upravljanje Jenkinsom> Korisnici upravitelja i po potrebi izvršiti promjene.

Korak 2. Izrada vašeg prvog cjevovoda

Napravite novi posao i odaberite Projekt cjevovoda .

Da biste provjerili svoj projekt, u odjeljku Cjevovod u Definiciji odaberite Pipeline Script iz SCM- a, a u SCM-u odaberite Git

Zatim dodajte svoj repo URL i dodajte vjerodajnice ako je to privatni repo. U granama za izgradnju dodajte * / jenkins-integraciju,grana koju smo stvorili ranije.

Provjerite je li put skripte Jenkinsfile koji smo stvorili u našoj novoj grani. Sve skripte bit će napisane u ovom Jenkinsfileu.

Kliknite Spremi i Jenkins će automatski skenirati vaš repo sa spomenutom granom i pokrenut će skriptu Jenkinsfile.

Sada smo spremni konfigurirati naš Jenkinsfile za izradu gradnji

Korak 3. Dodajte parametre na posao

Potreban je korisnički unos za

  • podružnica
  • okoliš (test ili prod)

Za to moramo konfigurirati naš projekt tako da uzima ulazne parametre za posao.

Idite na odjeljak Konfiguracija i provjerite je li ovaj projekt parametriziran .

Zatim odaberite dodaj parametar i dodaj isti u skladu s tim.

Kada kliknete na spremi, vidjet ćete novi odjeljak s lijeve strane - & g t; Gradite pomoću Parametra . Ovo će biti korisničko sučelje za izradu gradnji.

Ti će se parametri koristiti u našem Jenkinsovom scenariju.

Korak 3. Konfigurirajte Jenkinsovu skriptu

Stvorit će više koraka u našem Jenkinsfileu, od kojih svaki ima jednu odgovornost, i stvorit će lijepo korisničko sučelje kada se izgradi.

Idite na svoj Jenkinsfile i zamijenite skriptu sljedećim:

Prvo provjerite granu kroz parametar koji smo dodali ranije. Dodajte svoj repo i GitHub token.

Sada GitHub token ne bi trebao biti vidljiv drugima. Da biste to učinili, idite na Manage Jenkins - & g t; Konfiguracija Sys tem -> Globalna prope rties bih dodati GitHub token kao varijablu okruženja.

Zatim pozovite skriptu za promjenu okruženja.

Dalje, pozovite fastlane za čišćenje (uklonite izvedene podatke, očistite, izbrišite .dsym datoteke itd.).

Ako je potrebno potpisivanje koda, učinite to sljedećim putem ad-hoc . Možete koristiti razvoj ili trgovinu aplikacija na temelju svojih potreba.

Dalje, kreirajte gradnje pomoću naredbe gym u fastlaneu.

Korak 4. Pokrenite posao

Sada je naša skripta spremna. Idite na Jenkins i otvorite Build with Parameters.

Počet će izvoditi skriptu i stvorit će lijepo korisničko sučelje s više koraka kako je spomenuto u Jenkinsfileu.

Kad je posao završen, idite na projekt Users / agammahajan / .jenkins / workspace / iOS_Build_Systems

i vidjet ćete da je .ipa stvorena. Voilà!

Sada ovu gradnju možete podijeliti s drugima. Ako želite, možete upotrijebiti dodatak Slack za prijenos gradiva u Slack.

Završavati

Dakle, da zaključimo ovdje, možemo vidjeti kako je lako postaviti automatiziranog bota koji omogućava bilo kojoj osobi da pokreće gradnje u samo 2 koraka: Give Branch-> Test Environment-> Gotovo.

To je pomoglo meni i mojim kolegama programerima da poboljšamo produktivnost i brže isporučujemo. Također je pomoglo QA timu, tako da ne moraju ovisiti o programerima svaki put kad trebaju nešto testirati. Nadam se da će koristiti i vama i vašoj tvrtki.

Odavde su mogućnosti bezbrojne.

  1. Možete raditi planirane poslove za generiranje noćnih gradnji.
  2. Prijenos gradiva izravno u App Store.
  3. Predmemorirajte gradnje, tako da se gradnje s istom konfiguracijom ne generiraju ponovno.
  4. Domaća distribucija IPA-e za OTA (bežičnu) instalaciju.
  5. Napravite CI-CD cjevovod za pokretanje automatiziranih testova na svakom predaju i pripremite ih za proizvodnju.