Cum de a adăuga primul loc de muncă Android la Jenkins

nou: tocmai am lansat un nou ebook: Jenkins Starter Guide, care conține toate informațiile din această serie de patru posturi și mai mult. Cap de pe la pagina noastră de resurse pentru a descărca.

în cazul în care ați ratat primele noastre postări din această serie sau dacă nu sunteți sigur ce este Jenkins sau CI, întoarceți-vă și citiți: Ce este Jenkins și de ce ar trebui să-l utilizați?

acesta este un ghid pas cu pas pentru modul de configurare Jenkins pentru a construi și testa aplicații Android. În acest demo vom folosi un exemplu de aplicație folosind Bugfender SDK în Android. Veți dori, evident, utilizați propria aplicație Android construit sau bibliotecă. Pașii pentru adăugarea propriului proiect Android la Jenkins vor fi aceiași.

construirea aplicațiilor iOS? Fii atent la următorul articol din această serie în curând.

în primul rând, va trebui să pregătiți mașina pentru a compila și rula aplicații Android. Dacă nu ați instalat deja Jenkins, puteți urma pașii din postarea anterioară pentru a instala Jenkins pe serverul dvs.

Configurarea Android App construiește în Jenkins

Pasul 1: instalați Java JDK

sudo apt-get install java-8-openjdk

Pasul 2: instalați Android SDK

du-te la https://developer.android.com/studio/index.html#downloads, și apuca link-ul enumerate în tabel pentru a obține doar instrumentele de linie de comandă > Linux. Nu descărcați nimic, doar copiați linkul.

sudo apt-get install unzip# here you paste the link you grabbed in the developer.android.com sitesudo -iu jenkins wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zipsudo -iu jenkins mkdir android-sdksudo -iu jenkins unzip sdk-tools-linux-3859397.zip -d android-sdk# this step is important to accept the Android SDK licenseyes |sudo -iu jenkins android-sdk/tools/bin/sdkmanager --licenses

fii un super-erou

Fend off bug-uri și să păstreze utilizatorii în siguranță.

utilizați Bugfender gratuit astăzi

Pasul 3: Configurați Jenkins

apoi, conectați-vă la Jenkins și configurați SDK-ul Android pe care tocmai l-ați instalat:

deschideți https://your-ci-server-name.com în browserul dvs. Veți vedea ceva de genul asta:

  • du-te pentru a gestiona Jenkins > sistem de configurare
  • verificați „variabile de mediu”
  • Adauga Nume: ANDROID_HOME
  • adauga valoare: / var / lib / jenkins / android-sdk
  • Faceți clic pe „Apply” apoi „Save”

Pasul 4: Creați un job Android

acum reveniți la pagina de pornire. Faceți clic pe element nou. Introduceți numele proiectului și selectați ” proiect Freestyle.”

Pasul 5: descărcarea codului dvs. în Jenkins

în continuare, trebuie să adăugați un link la depozitul dvs., astfel încât Jenkins să vă poată descărca codul. Specificați adresa URL Git a depozitului dvs. în secțiunea Gestionare cod sursă. După cum am menționat, vom folosi acest depozit de eșantioane: https://github.com/bugfender/BugfenderSDK-android-sample.git.

dacă aveți un depozit Mercurial sau Subversion, acestea funcționează exact în același mod. Dacă aveți un depozit privat, puteți crea, de asemenea, chei SSH pentru a accesa depozitul dvs. cu protocolul git.

Pasul 6: Configurarea Jenkins build Triggers

de asemenea, puteți specifica build Triggers care vor construi proiectul automat pentru dvs. Cel mai bine este să folosiți un cârlig pentru a declanșa automat compilările atunci când cineva împinge codul în depozit.

pentru BitBucket, Gitlab și majoritatea furnizorilor Git, puteți utiliza opțiunea „Trigger builds remotely”. Aceasta va oferi o adresă URL pe care o puteți configura ca un webhook în furnizorul dvs. pentru a porni automat o construcție.

pentru utilizatorii GitHub, cel mai ușor este să găsiți și să instalați „pluginul GitHub” (în gestionați Jenkins > gestionați pluginurile) și va apărea o opțiune specifică GitHub. Aceasta va instala webhook-ul pentru dvs.

Pasul 7: construiți

odată ce aveți codul sursă în Jenkins, este timpul să construiți. Dacă proiectul dvs. are un înveliș Gradle, asta ar trebui să utilizați. În cazul nostru, vom crea un pas de construire a scriptului Invoke Gradle ca acesta:

dacă aveți un proiect bazat pe Ant, există, de asemenea, un pas invoke Ant build sau pentru flexibilitate maximă puteți utiliza pasul Execute shell build.

Testați-vă construirea apăsând „Salvați”

și asta este. Primul dvs. proiect Android a fost adăugat la Jenkins. Acum poate doriți să ia în considerare accelerarea Gradle și înființarea de testare automată în Jenkins.

începe fixarea bug-uri mai repede acum gratuit

Bugfender este cel mai bun logger la distanță pentru aplicații mobile.

Inscrie-te

accelerați Gradle (opțional)

dacă rulați versiuni bazate pe Gradle, puteți economisi ceva timp de construire rulând Gradle ca daemon. Pentru a-l rula, faceți următoarele:

mkdir -p /var/lib/jenkins/.gradleecho org.gradle.daemon=true | sudo -iu jenkins tee -a /var/lib/jenkins/.gradle/gradle.properties

rularea testelor unitare

dacă doriți să rulați teste unitare, puteți face acest lucru adăugând un alt pas de construire cu sarcina test Gradle, astfel:

rularea testelor de integrare

pentru a configura teste UI, va trebui să rulați un emulator. Chiar dacă Jenkins are un Plugin pentru Emulator Android, am constatat că acesta nu a fost actualizat și nu mai funcționează cu cele mai recente versiuni ale SDK-ului Android. Iată soluția noastră sugerată:

Pasul 1: Descărcați emulatorul. Pentru a lista SDK-urile disponibile, executați:

sudo -iu jenkins android-sdk/tools/bin/sdkmanager --list --verbose

notă rapidă privind selectarea imaginii potrivite pentru dvs.: imaginile bazate pe x86 rulează mai repede, dar au nevoie și de accelerare hardware. Este posibil să trebuiască să activați accelerarea KVM (sudo modprobe kvm) în serverul dvs. și serverul dvs. nu poate fi o mașină virtuală. Din acest motiv, alegem o imagine ARM, care rulează mai lent, dar funcționează.

Pasul 2: În cazul nostru, căutăm să rulăm aplicația noastră pe Android SDK level 25, deci imagini de sistem; android-25; google_apis; armeabi-v7a pare potrivit, apoi îl instalăm în acest fel:

sudo -iu jenkins android-sdk/tools/bin/sdkmanager 'system-images;android-25;google_apis;armeabi-v7a'

Pasul 3: Odată instalat, creăm un dispozitiv Virtual Android (o instanță emulator) cu acesta:

echo no | $ANDROID_SDK_ROOT/tools/bin/avdmanager -v create avd --force --package 'system-images;android-25;google_apis;armeabi-v7a' --name Android25 --tag google_apis --abi armeabi-v7a

Pasul 4: apoi folosim Supervisord pentru a rula emulatorul Android ca serviciu de sistem, întotdeauna în fundal. Pentru a-l instala:

sudo apt-get install supervisor

apoi, creați un fișier de configurare în /etc/supervisor/conf.d/emulator.conf:

command=/var/lib/jenkins/android-sdk/emulator/emulator -avd Android25 -no-window -noaudio -no-boot-anim -accel on -ports 5556,5557autostart=trueuser=jenkinsenvironment=ANDROID_SDK_ROOT=/var/lib/jenkins/android-sdk

Pasul 5: După ce se face acest lucru, reporniți supervisord pentru a aplica modificările:

sudo service supervisor restart

emulatorul ar trebui să înceapă în fundal. Ar putea dura 1-2 minute. Veți vedea că dispozitivul emulator apare în lista Dispozitive când este gata:

sudo -iu jenkins android-sdk/platform-tools/adb devices

Pasul 6: în lucrarea Jenkins, adăugați un pas de construire a shell-ului de execuție ca acesta:

Cod:

ANDROID_SERIAL=emulator-5556# wait for emulator to be up and fully booted, unlock screen$ANDROID_HOME/platform-tools/adb wait-for-device shell 'while ]; do sleep 1; done; input keyevent 82'./gradlew connectedAndroidTest

pașii următori

există mai multe opțiuni, cum ar fi rularea unui emulator Android, instalarea aplicației și rularea diferitelor teste pe acesta.

în plus, există unele plugin-uri foarte interesante pe care le puteți juca cu:

  • Android Emulator Plugin — în acest moment, acest plugin nu este de lucru în mod corespunzător cu cele mai recente Android SDK. Dar cea mai bună presupunere a noastră este că o vor repara și va funcționa din nou în curând. Ca alternativă, puteți utiliza o versiune SDK mai veche.
  • Android semnarea Plugin
  • Google Play Android Editor Plugin

pentru mai multe posturi în această serie, a verifica afară:

  • ce este Jenkins și de ce ar trebui să-l utilizați?
  • cum se instalează Jenkins în Ubuntu
  • cum se adaugă primul loc de muncă iOS la Jenkins

Lasă un răspuns

Adresa ta de email nu va fi publicată.