Nuovo: Abbiamo appena rilasciato un nuovo ebook: la Guida Jenkins Starter, che contiene tutte le informazioni in questa serie di quattro post e altro ancora. Testa su oltre alla nostra pagina delle risorse per scaricare.
Nel caso in cui ti sei perso il nostro primo paio di post in questa serie, o se non sei sicuro di cosa sia Jenkins o CI, torna indietro e leggi: Cos’è Jenkins e perché dovresti usarlo?
Questa è una guida passo-passo su come impostare Jenkins per creare e testare app Android. In questa demo useremo un’applicazione di esempio utilizzando Bugfender SDK in Android. Ovviamente vorrai usare la tua applicazione o libreria Android costruita. I passaggi per aggiungere il proprio progetto Android a Jenkins saranno gli stessi.
Creazione di app iOS? Tenete d’occhio per il prossimo articolo di questa serie in arrivo.
Prima di tutto, è necessario preparare la macchina per compilare ed eseguire applicazioni Android. Se non hai già installato Jenkins, puoi seguire i passaggi del post precedente per installare Jenkins nel tuo server.
- Configurazione App Android Costruisce in Jenkins
- Passo 1: Installare Java JDK
- Passo 2: Installare Android SDK
- Essere un supereroe
- Fase 3: Configura Jenkins
- Passo 4: Creare un Android di Lavoro
- Passo 5: Scarica il tuo codice su Jenkins
- Passo 6: Configurazione di Jenkins Build Trigger
- Passo 7: Build
- Inizia a correggere i bug più velocemente ora gratuitamente
- Accelerare Gradle (opzionale)
- Esecuzione di Unit Test
- l’Esecuzione dei Test di Integrazione
- Prossimi Passi
Configurazione App Android Costruisce in Jenkins
Passo 1: Installare Java JDK
sudo apt-get install java-8-openjdk
Passo 2: Installare Android SDK
Vai a https://developer.android.com/studio/index.html#downloads, e afferrare il link elencato nella tabella per ottenere solo gli strumenti della riga di comando > Linux. Non scaricare nulla, basta copiare il 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
Essere un supereroe
Respingere i bug e mantenere gli utenti al sicuro.
Usa Bugfender gratuitamente oggi
Fase 3: Configura Jenkins
Quindi, accedi a Jenkins e configura l’SDK Android appena installato:
Apri https://your-ci-server-name.com
sul tuo browser. Vedrete qualcosa di simile a questo:
- Andare a Gestire Jenkins > Configurazione di Sistema
- Controllare “variabili di Ambiente”
- fare Clic su “Applica”, quindi su “Salva”
Aggiungi Nome: ANDROID_HOME Aggiungi Valore: /var/lib/jenkins/android-sdk
Passo 4: Creare un Android di Lavoro
Ora torna alla home page. Clicca su Nuovo elemento. Inserisci il nome del tuo progetto e seleziona ” Progetto Freestyle.”
Passo 5: Scarica il tuo codice su Jenkins
Successivamente, devi aggiungere un link al tuo repository in modo che Jenkins possa scaricare il tuo codice. Specificare l’URL Git del repository nella sezione Gestione codice sorgente. Come accennato, useremo questo repository di esempio: https://github.com/bugfender/BugfenderSDK-android-sample.git.
Se hai un repository Mercurial o Subversion, funzionano esattamente allo stesso modo. Se si dispone di un repository privato, è anche possibile creare chiavi SSH per accedere al repository con il protocollo git.
Passo 6: Configurazione di Jenkins Build Trigger
È inoltre possibile specificare Build Trigger che costruiranno automaticamente il progetto per voi. È meglio usare un hook per attivare automaticamente le build quando qualcuno spinge il codice nel repository.
Per BitBucket, Gitlab e la maggior parte dei provider Git, è possibile utilizzare l’opzione “Trigger build remotely”. Questo darà un URL che puoi configurare come webhook nel tuo provider per avviare automaticamente una build.
Per gli utenti GitHub, il modo più semplice è trovare e installare il “plugin GitHub” (in Gestisci Jenkins > Gestisci plugin) e apparirà un’opzione specifica di GitHub. Questo installerà il webhook per voi.
Passo 7: Build
Una volta che hai il codice sorgente in Jenkins, è il momento di costruire. Se il tuo progetto ha un wrapper Gradle, è quello che dovresti usare. Nel nostro caso, creeremo un passo di creazione di script Gradle Invoke come questo:
Se si dispone di un progetto basato su Ant, esiste anche un passo Invoke Ant build o per la massima flessibilità è possibile utilizzare il passo Execute shell build.
Prova la tua build premendo”Salva”
E il gioco è fatto. Il tuo primo progetto Android è stato aggiunto a Jenkins. Ora potresti prendere in considerazione l’accelerazione di Gradle e l’impostazione di test automatici in Jenkins.
Inizia a correggere i bug più velocemente ora gratuitamente
Bugfender è il miglior logger remoto per app mobili.
Registrati
Accelerare Gradle (opzionale)
Se si eseguono build basate su Gradle, è possibile risparmiare un po ‘ di tempo di compilazione eseguendo Gradle come demone. In ordine per farlo funzionare effettuare le seguenti operazioni:
mkdir -p /var/lib/jenkins/.gradleecho org.gradle.daemon=true | sudo -iu jenkins tee -a /var/lib/jenkins/.gradle/gradle.properties
Esecuzione di Unit Test
Se si desidera eseguire unit test, è possibile farlo aggiungendo un altro passaggio di generazione con il test Gradle compito, come questo:
l’Esecuzione dei Test di Integrazione
per impostare UI test, sarà necessario eseguire un emulatore. Anche se Jenkins ha un plugin per emulatore Android, abbiamo scoperto che non è stato aggiornato e non funziona più con le ultime versioni di Android SDK. Ecco la nostra soluzione suggerita:
Passo 1: Scarica l’emulatore. Per elencare gli SDK disponibili, eseguire:
sudo -iu jenkins android-sdk/tools/bin/sdkmanager --list --verbose
Breve nota sulla selezione dell’immagine giusta per te: le immagini basate su x86 corrono più velocemente ma necessitano anche di accelerazione hardware. Potrebbe essere necessario abilitare l’accelerazione KVM (sudo modprobe kvm) nel server e il server non può essere una macchina virtuale. Per questo motivo stiamo scegliendo un’immagine ARM, che funziona più lentamente ma funziona.
Fase 2: Nel nostro caso, stiamo cercando di eseguire la nostra applicazione su Android SDK livello 25, per cui il sistema-immagini;android-25;google_apis;armeabi-v7a sembra adatto, allora possiamo installare questo modo:
sudo -iu jenkins android-sdk/tools/bin/sdkmanager 'system-images;android-25;google_apis;armeabi-v7a'
Passo 3: una Volta installato, si crea un Android Virtual Device (un’istanza dell’emulatore) con:
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
Passo 4: Quindi usiamo Supervisord per eseguire l’emulatore di Android come un servizio di sistema, sempre in background. Per installarlo:
sudo apt-get install supervisor
Quindi, creare un file di configurazione 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
Passo 5: Una volta fatto questo, riavviare supervisord per applicare le modifiche:
sudo service supervisor restart
L’emulatore dovrebbe iniziare in background. Potrebbe richiedere 1-2 minuti. Vedrete l’emulatore del dispositivo viene visualizzato nell’elenco periferiche quando è pronta:
sudo -iu jenkins android-sdk/platform-tools/adb devices
Passo 6: In Jenkins lavoro, aggiungi un’Esecuzione di shell costruire passo come questo:
Codice:
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
Prossimi Passi
Ci sono altre opzioni, quali l’esecuzione di un emulatore di Android, installare l’applicazione e l’esecuzione di vari test su di esso.
Inoltre, ci sono alcuni plugin davvero interessanti con cui puoi giocare:
- Android Emulator Plugin-Al momento, questo plugin non funziona correttamente con l’ultimo SDK Android. Ma la nostra ipotesi migliore è che lo risolveranno e funzionerà di nuovo presto. In alternativa, è possibile utilizzare una versione precedente di SDK.
- Android Signing Plugin
- Google Play Android Publisher Plugin
Per ulteriori messaggi in questa serie, controllare:
- Cos’è Jenkins e perché dovresti usarlo?
- Come installare Jenkins in Ubuntu
- Come aggiungere il tuo primo lavoro iOS a Jenkins