So fügen Sie Ihren ersten Android-Job zu Jenkins hinzu

Neu: Wir haben gerade ein neues eBook veröffentlicht: das Jenkins Starter Guide, das alle Informationen in dieser Serie von vier Beiträgen und mehr enthält. Gehen Sie auf unsere Ressourcen-Seite zum Download bereit.

Falls Sie unsere ersten Beiträge in dieser Serie verpasst haben oder sich nicht sicher sind, was Jenkins oder CI ist, lesen Sie zurück: Was ist Jenkins und warum sollten Sie es verwenden?

Dies ist eine Schritt-für-Schritt-Anleitung zum Einrichten von Jenkins zum Erstellen und Testen von Android-Apps. In dieser Demo verwenden wir eine Beispielanwendung mit Bugfender SDK in Android. Sie möchten natürlich Ihre eigene Android-Anwendung oder -Bibliothek verwenden. Die Schritte zum Hinzufügen Ihres eigenen Android-Projekts zu Jenkins sind dieselben.

iOS-Apps erstellen? Halten Sie Ausschau nach dem nächsten Artikel in dieser Serie, der bald erscheint.

Zunächst müssen Sie den Computer vorbereiten, um Android-Anwendungen zu kompilieren und auszuführen. Wenn Sie Jenkins noch nicht installiert haben, können Sie die Schritte im vorherigen Beitrag ausführen, um Jenkins auf Ihrem Server zu installieren.

Konfigurieren von Android-App-Builds in Jenkins

Schritt 1: Installieren Sie Java JDK

sudo apt-get install java-8-openjdk

Schritt 2: Installieren Sie Android SDK

Gehen Sie zu https://developer.android.com/studio/index.html#downloads und greifen Sie auf den in der Tabelle aufgeführten Link zu Holen Sie sich nur die Befehlszeilentools > Linux. Laden Sie nichts herunter, kopieren Sie einfach den Link.

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

Seien Sie ein Superheld

Wehren Sie Fehler ab und schützen Sie Ihre Benutzer.

Verwenden Sie Bugfender noch heute kostenlos

Schritt 3: Konfigurieren Sie Jenkins

Melden Sie sich dann bei Jenkins an und konfigurieren Sie das gerade installierte Android SDK:

Öffnen Sie https://your-ci-server-name.com in Ihrem Browser. Du wirst so etwas sehen:

  • Gehen Sie zu Jenkins verwalten > System konfigurieren
  • Überprüfen Sie „Umgebungsvariablen“
  • Name hinzufügen: ANDROID_HOME
  • Wert hinzufügen: /var/lib/jenkins/android-sdk
  • Klicken Sie auf „Übernehmen“ und dann auf „Speichern“

Schritt 4: Erstellen Sie einen Android-Job

Kehren Sie nun zur Startseite zurück. Klicken Sie auf Neues Element. Geben Sie Ihren Projektnamen ein und wählen Sie „Freestyle-Projekt.“

Schritt 5: Herunterladen Ihres Codes auf Jenkins

Als nächstes müssen Sie einen Link zu Ihrem Repository hinzufügen, damit Jenkins Ihren Code herunterladen kann. Geben Sie die Git-URL Ihres Repositorys im Abschnitt Quellcodeverwaltung an. Wie bereits erwähnt, werden wir dieses Beispiel-Repository verwenden: https://github.com/bugfender/BugfenderSDK-android-sample.git .

Wenn Sie ein Mercurial- oder Subversion-Repository haben, funktionieren diese genauso. Wenn Sie ein privates Repository haben, können Sie auch SSH-Schlüssel erstellen, um mit dem git-Protokoll auf Ihr Repository zuzugreifen.

Schritt 6: Konfigurieren von Jenkins Build-Triggern

Sie können auch Build-Trigger angeben, die das Projekt automatisch für Sie erstellen. Es ist am besten, einen Hook zu verwenden, um Builds automatisch auszulösen, wenn jemand Code in das Repository schiebt.

Für BitBucket, Gitlab und die meisten Git-Anbieter können Sie die Option „Trigger builds remotely“ verwenden. Dadurch erhalten Sie eine URL, die Sie als Webhook in Ihrem Provider konfigurieren können, um automatisch einen Build zu starten.

Für GitHub-Benutzer ist es am einfachsten, das „GitHub-Plugin“ (in Jenkins verwalten > Plugins verwalten) zu finden und zu installieren. Dadurch wird der Webhook für Sie installiert.

Schritt 7: Build

Sobald Sie den Quellcode in Jenkins haben, ist es Zeit zu bauen. Wenn Ihr Projekt einen Gradle-Wrapper hat, sollten Sie diesen verwenden. In unserem Fall erstellen wir einen Build-Schritt zum Aufrufen des Gradle-Skripts wie folgt:

Wenn Sie ein Ant-basiertes Projekt haben, gibt es auch einen Invoke Ant Build-Schritt oder für maximale Flexibilität können Sie den Execute Shell Build-Schritt verwenden.

Testen Sie Ihren Build durch Drücken von „Speichern“

Und das war’s. Ihr erstes Android-Projekt wurde zu Jenkins hinzugefügt. Jetzt möchten Sie vielleicht in Betracht ziehen, Gradle zu beschleunigen und automatisierte Tests in Jenkins einzurichten.

Beheben Sie Fehler jetzt schneller und kostenlos

Bugfender ist der beste Remote-Logger für mobile Apps.

Anmelden

Accelerate Gradle (optional)

Wenn Sie Builds ausführen, die auf Gradle basieren, können Sie etwas Build-Zeit sparen, indem Sie Gradle als Daemon ausführen. Um es zum Laufen zu bringen, machen Sie Folgendes:

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

Ausführen von Komponententests

Wenn Sie Komponententests ausführen möchten, können Sie dies tun, indem Sie einen weiteren Build-Schritt mit der Test-Gradle-Aufgabe hinzufügen:

Integrationstests ausführen

Um UI-Tests einzurichten, müssen Sie einen Emulator ausführen. Obwohl Jenkins über ein Android-Emulator-Plugin verfügt, haben wir festgestellt, dass es nicht aktualisiert wurde und nicht mehr mit den neuesten Versionen des Android SDK funktioniert. Hier ist unsere vorgeschlagene Problemumgehung:

Schritt 1: Laden Sie den Emulator herunter. Um die verfügbaren SDKs aufzulisten, führen Sie Folgendes aus:

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

Kurzer Hinweis zur Auswahl des richtigen Images für Sie: x86-basierte Images laufen schneller, benötigen aber auch Hardwarebeschleunigung. Möglicherweise müssen Sie die KVM-Beschleunigung (sudo modprobe kvm) auf Ihrem Server aktivieren, und Ihr Server kann keine virtuelle Maschine sein. Aus diesem Grund wählen wir ein ARM-Image, das langsamer läuft, aber funktioniert.

Schritt 2: In unserem Fall möchten wir unsere Anwendung auf Android SDK Level 25 ausführen, also system-images;android-25;google_apis;armeabi-v7a scheint geeignet, dann installieren wir es auf diese Weise:

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

Schritt 3: Nach der Installation erstellen wir damit ein virtuelles Android-Gerät (eine Emulatorinstanz):

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

Schritt 4: Dann verwenden wir Supervisord, um den Android-Emulator als Systemdienst auszuführen, immer im Hintergrund. Um es zu installieren:

sudo apt-get install supervisor

Erstellen Sie dann eine Konfigurationsdatei in /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

Schritt 5: Sobald dies erledigt ist, starten Sie Supervisord neu, um die Änderungen zu übernehmen:

sudo service supervisor restart

Der Emulator sollte im Hintergrund starten. Es kann 1-2 Minuten dauern. Das Emulatorgerät wird in der Geräteliste angezeigt, wenn es fertig ist:

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

Schritt 6: Fügen Sie im Jenkins-Job einen Shell-Build-Schritt wie folgt hinzu:

Kodex:

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ächste Schritte

Es gibt weitere Optionen wie das Ausführen eines Android-Emulators, das Installieren der Anwendung und das Ausführen verschiedener Tests.

Darüber hinaus gibt es einige wirklich interessante Plugins, mit denen Sie spielen können:

  • Android Emulator Plugin – Im Moment funktioniert dieses Plugin nicht richtig mit dem neuesten Android SDK. Aber unsere beste Vermutung ist, dass sie es beheben werden und es bald wieder funktionieren wird. Alternativ können Sie eine ältere SDK-Version verwenden.
  • Android Signing Plugin
  • Google Play Android Publisher Plugin

Weitere Beiträge in dieser Serie finden Sie unter:

  • Was ist Jenkins und warum sollten Sie es verwenden?
  • So installieren Sie Jenkins in Ubuntu
  • So fügen Sie Ihren ersten iOS-Job zu Jenkins hinzu

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.