nytt: Vi har just släppt en ny e-bok: Jenkins Starter Guide, som innehåller all information i denna serie med fyra inlägg och mer. Gå vidare till vår resurssida för att ladda ner.
om du missade våra första par inlägg i den här serien, eller om du inte är säker på vad Jenkins eller CI är, gå tillbaka och läs: Vad är Jenkins och varför ska du använda det?
Detta är en steg-för-steg-guide för hur du ställer in Jenkins för att bygga och testa Android-appar. I den här demo använder vi ett exempelapplikation med Bugfender SDK i Android. Du vill självklart använda din egen inbyggda Android-applikation eller bibliotek. Stegen för att lägga till ditt eget Android-projekt till Jenkins kommer att vara desamma.
bygga iOS-appar? Håll utkik efter nästa artikel i denna serie kommer snart.
först måste du förbereda maskinen för att kompilera och köra Android-applikationer. Om du inte redan har installerat Jenkins kan du följa stegen i föregående inlägg för att installera Jenkins på din server.
- konfigurera Android-Appen bygger i Jenkins
- Steg 1: Installera Java JDK
- steg 2: Installera Android SDK
- var en superhjälte
- steg 3: Konfigurera Jenkins
- steg 4: Skapa ett Android-jobb
- Steg 5: Ladda ner din kod till Jenkins
- steg 6: konfigurera Jenkins Build Triggers
- Steg 7: Bygg
- börja fixa buggar snabbare nu gratis
- accelerera Gradle (valfritt)
- köra enhetstester
- kör integrationstester
- nästa steg
konfigurera Android-Appen bygger i Jenkins
Steg 1: Installera Java JDK
sudo apt-get install java-8-openjdk
steg 2: Installera Android SDK
gå till https://developer.android.com/studio/index.html#downloads och ta tag i länken i tabellen för att bara få kommandoradsverktygen > Linux. Ladda inte ner något, bara kopiera länken.
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
var en superhjälte
parera buggar och hålla användarna säkra.
använd Bugfender gratis idag
steg 3: Konfigurera Jenkins
logga sedan in på Jenkins och konfigurera Android SDK som du just installerat:
öppna https://your-ci-server-name.com
i din webbläsare. Du kommer att se något så här:
- gå till Hantera Jenkins > konfigurera System
- kontrollera ”miljövariabler”
- Lägg till namn: ANDROID_HOME
- Lägg till värde: / var / lib / jenkins / android-sdk
- klicka på ”Apply” och sedan ”Save”
steg 4: Skapa ett Android-jobb
gå nu tillbaka till hemsidan. Klicka på nytt objekt. Ange ditt projektnamn och välj ”Freestyle project.”
Steg 5: Ladda ner din kod till Jenkins
Därefter måste du lägga till en länk till ditt förråd så att Jenkins kan ladda ner din kod. Ange Git-webbadressen till ditt förråd i avsnittet Källkodshantering. Som nämnts kommer vi att använda detta provförvar: https://github.com/bugfender/BugfenderSDK-android-sample.git.
om du har ett Mercurial-eller Subversion-arkiv fungerar de på exakt samma sätt. Om du har ett privat arkiv kan du också skapa SSH-nycklar för att komma åt ditt arkiv med git-protokollet.
steg 6: konfigurera Jenkins Build Triggers
du kan också ange Build Triggers som kommer att bygga projektet automatiskt för dig. Det är bäst att använda en krok för att utlösa bygger automatiskt när någon skjuter kod till förvaret.
för BitBucket, Gitlab och de flesta git-leverantörer kan du använda alternativet ”Trigger builds remotely”. Detta ger en URL som du kan konfigurera som en webhook i din leverantör för att automatiskt starta en byggnad.
för GitHub-användare är det enklaste att hitta och installera ”GitHub-plugin” (I hantera Jenkins > hantera Plugins) och ett GitHub-specifikt alternativ visas. Detta kommer att installera webhook för dig.
Steg 7: Bygg
när du har källkoden i Jenkins är det dags att bygga. Om ditt projekt har en Gradle wrapper, det är vad du ska använda. I vårt fall skapar vi ett Invoke Gradle script build-steg så här:
om du har ett Ant-baserat projekt finns det också ett Invoke Ant build-steg eller för maximal flexibilitet kan du använda Execute shell build-steget.
testa din byggnad genom att trycka på ”Spara”
och det är det. Ditt första Android-projekt har lagts till i Jenkins. Nu kanske du vill överväga att accelerera Gradle och ställa in automatiserad testning i Jenkins.
börja fixa buggar snabbare nu gratis
Bugfender är den bästa fjärrloggaren för mobilappar.
registrera dig
accelerera Gradle (valfritt)
om du kör builds baserat på Gradle kan du spara lite byggtid genom att köra Gradle som daemon. För att få det igång gör följande:
mkdir -p /var/lib/jenkins/.gradleecho org.gradle.daemon=true | sudo -iu jenkins tee -a /var/lib/jenkins/.gradle/gradle.properties
köra enhetstester
om du vill köra enhetstester kan du göra det genom att lägga till ett annat byggsteg med test Gradle-uppgiften, så här:
kör integrationstester
för att ställa in UI-tester måste du köra en emulator. Även om Jenkins har ett Android-Emulatorplugin har vi funnit att det inte har uppdaterats och inte längre fungerar med de senaste versionerna av Android SDK. Här är vår föreslagna lösning:
Steg 1: Ladda ner emulatorn. För att lista tillgängliga SDK: er, kör:
sudo -iu jenkins android-sdk/tools/bin/sdkmanager --list --verbose
snabb anteckning om att välja rätt bild för dig: x86-baserade bilder körs snabbare men behöver också hårdvaruacceleration. Du kanske måste aktivera KVM acceleration (sudo modprobe kvm) i din server och din server kan inte vara en virtuell maskin. Av den anledningen väljer vi en ARMBILD, som går långsammare men fungerar.
steg 2: i vårt fall vill vi köra vår applikation på Android SDK level 25, så systembilder; android-25; google_apis; armeabi-v7a verkar lämpligt, då installerar vi det på så sätt:
sudo -iu jenkins android-sdk/tools/bin/sdkmanager 'system-images;android-25;google_apis;armeabi-v7a'
steg 3: När vi har installerat skapar vi en virtuell Android-enhet (en emulatorinstans) med den:
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
steg 4: sedan använder vi Supervisord för att köra Android-emulatorn som en systemtjänst, alltid i bakgrunden. För att installera det:
sudo apt-get install supervisor
skapa sedan 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
Steg 5: När detta är gjort, starta om supervisord för att tillämpa ändringarna:
sudo service supervisor restart
emulatorn bör börja i bakgrunden. Det kan ta 1-2 minuter. Du kommer att se emulatorenheten visas i enhetslistan när den är klar:
sudo -iu jenkins android-sdk/platform-tools/adb devices
steg 6: i Jenkins-jobbet lägger du till ett Execute shell build-steg så här:
kod:
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ästa steg
det finns fler alternativ som att köra en Android-emulator, installera programmet och köra olika tester på den.
dessutom finns det några riktigt intressanta plugins som du kan spela med:
- Android Emulator Plugin-just nu är denna plugin inte fungerar korrekt med senaste Android SDK. Men vår bästa gissning är att de kommer att fixa det och det kommer att fungera igen snart. Som ett alternativ kan du använda en äldre SDK-version.
- Android signering Plugin
- Google Play Android Publisher Plugin
för fler inlägg i denna serie, kolla in:
- Vad är Jenkins och varför ska du använda det?
- så här installerar du Jenkins i Ubuntu
- så här lägger du till ditt första iOS-jobb till Jenkins