Sådan tilføjes dit første Android-Job til Jenkins

Ny: vi har netop udgivet en ny e-bog: Jenkins Starter Guide, som indeholder alle oplysningerne i denne serie på fire indlæg og mere. Gå videre til vores Ressourceside for at hente.

hvis du gik glip af vores første par indlæg i denne serie, eller hvis du ikke er sikker på, hvad Jenkins eller CI er, skal du gå tilbage og læse: Hvad er Jenkins, og hvorfor skal du bruge det?

dette er en trinvis vejledning til, hvordan du konfigurerer Jenkins til at opbygge og teste Android-apps. I denne demo bruger vi et eksempel på et program, der bruger Bugfender SDK i Android. Du vil naturligvis bruge din egen bygget Android applikation eller bibliotek. Trinene til at tilføje dit eget Android-projekt til Jenkins vil være de samme.

opbygning af iOS-apps? Hold øje med den næste artikel i denne serie kommer snart.

først skal du forberede maskinen til at kompilere og køre Android-applikationer. Hvis du ikke allerede har installeret Jenkins, kan du følge trinene i det forrige indlæg for at installere Jenkins på din server.

konfiguration af Android-app bygger i Jenkins

Trin 1: Installer Java JDK

sudo apt-get install java-8-openjdk

Trin 2: Installer Android SDK

gå til https://developer.android.com/studio/index.html#downloads, og tag det link, der er anført i tabellen, for at få bare kommandolinjeværktøjerne > Linuk. Du må ikke hente noget, bare kopiere linket.

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

være en superhelt

afværge bugs og holde dine brugere sikkert.

brug Bugfender Gratis i dag

Trin 3: Konfigurer Jenkins

log derefter på Jenkins og konfigurer den Android SDK, du lige har installeret:

Åbn https://your-ci-server-name.com på din bro.ser. Du vil se noget som dette:

  • gå til Administrer Jenkins > Konfigurer System
  • kontroller “miljøvariabler”
  • Tilføj navn: ANDROID_HOME
  • Tilføj værdi: / var / lib / jenkins / android-sdk
  • Klik på “Anvend” og derefter “Gem”

Trin 4: Opret et Android-Job

gå nu tilbage til startsiden. Klik på Nyt element. Indtast dit projektnavn, og vælg “Freestyle project.”

Trin 5: henter din kode til Jenkins

næste, skal du tilføje et link til din repository, så Jenkins kan hente din kode. Angiv GIT-URL ‘ en til dit lager i afsnittet Kildekodehåndtering. Som nævnt skal vi bruge dette prøvelager: https://github.com/bugfender/BugfenderSDK-android-sample.git.

hvis du har et Mercurial-eller Subversion-arkiv, fungerer de nøjagtigt på samme måde. Hvis du har et privat lager, kan du også oprette SSH-nøgler for at få adgang til dit lager med git-protokollen.

Trin 6: konfiguration af Jenkins Build Triggers

du kan også angive Build Triggers, der vil bygge projektet automatisk for dig. Det er bedst at bruge en krog for at udløse builds automatisk, når nogen skubber kode til lageret.

for BitBucket, Gitlab og de fleste Git-udbydere kan du bruge “Trigger builds remote” – indstillingen. Dette giver en URL, som du kan konfigurere som en internetkrog i din udbyder til automatisk at starte en build.

for GitHub-brugere er det nemmeste at finde og installere “GitHub-plugin” (i Administrer Jenkins > Administrer Plugins), og en GitHub-specifik mulighed vises. Dette vil installere internettet for dig.

Trin 7: Byg

når du har kildekoden i Jenkins, er det tid til at bygge. Hvis dit projekt har en Gradle-indpakning, skal du bruge det. I vores tilfælde opretter vi et Invoke Gradle script build-trin som dette:

hvis du har et Ant-baseret projekt, er der også et Invoke Ant build-trin eller for maksimal fleksibilitet kan du bruge Udfør shell build-trin.

Test din build ved at trykke på “Gem”

og det er det. Dit første Android-projekt er blevet tilføjet til Jenkins. Nu Kan du overveje at accelerere Gradle og oprette automatiseret test i Jenkins.

begynd at rette fejl hurtigere nu gratis

Bugfender er den bedste fjernlogger til mobilapps.

Tilmeld dig

Accelerer Gradle (valgfrit)

hvis du kører builds baseret på Gradle, kan du spare lidt byggetid ved at køre Gradle som dæmon. For at få det kører gøre følgende:

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

Running Unit Tests

hvis du vil køre unit tests, kan du gøre det ved at tilføje endnu et build-trin med test Gradle-opgaven, som denne:

kører integrationstest

for at oprette UI-test skal du køre en emulator. Selvom Jenkins har et Android-Emulator-Plugin, har vi fundet ud af, at det ikke er blevet opdateret og ikke længere arbejder med de nyeste versioner af Android SDK. Her er vores foreslåede løsning:

Trin 1: Hent emulatoren. For at liste de tilgængelige SDK ‘ er skal du køre:

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

hurtig bemærkning om valg af det rigtige billede til dig: 86-baserede billeder kører hurtigere, men har også brug for acceleration af udstyr. Du skal muligvis aktivere KVM acceleration (sudo modprobe kvm) på din server, og din server kan ikke være en virtuel maskine. Af denne grund vælger vi et ARMBILLEDE, der kører langsommere, men fungerer.

Trin 2: i vores tilfælde søger vi at køre vores applikation på Android SDK level 25, så systembilleder; android-25; google_apis; armeabi-v7a synes passende, så installerer vi det på denne måde:

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

Trin 3: Når det er installeret, Vi skaber en Android virtuel enhed (en emulator instans) med det:

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

Trin 4: derefter bruger vi Supervisord til at køre Android-emulatoren som en systemtjeneste, altid i baggrunden. For at installere det:

sudo apt-get install supervisor

opret derefter en konfigurationsfil i /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

Trin 5: Når dette er gjort, skal du genstarte supervisord for at anvende ændringerne:

sudo service supervisor restart

emulatoren skal starte i baggrunden. Det kan tage 1-2 minutter. Du vil se emulatorenheden vises på listen enheder, når den er klar:

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

Trin 6: i Jenkins-jobbet skal du tilføje et Udfør shell-byggetrin som dette:

kode:

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

næste trin

der er flere muligheder som at køre en Android-emulator, installere applikationen og køre forskellige tests på den.

derudover er der nogle virkelig interessante plugins, som du kan spille med:

  • Android Emulator Plugin-i øjeblikket er dette plugin ikke fungerer korrekt med nyeste Android SDK. Men vores bedste gæt er, at de vil ordne det, og det fungerer snart igen. Som et alternativ kan du bruge en ældre SDK-version.
  • Android signering Plugin
  • Google Play Android Publisher Plugin

For flere indlæg i denne serie, tjek ud:

  • Hvad er Jenkins, og hvorfor skal du bruge det?
  • Sådan installeres Jenkins i Ubuntu
  • Sådan tilføjes dit første iOS-Job til Jenkins

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.