Jak dodać swoje pierwsze zadanie na Androida do Jenkinsa

Nowość: właśnie wydaliśmy nowy ebook: Przewodnik Jenkins Starter, który zawiera wszystkie informacje z tej serii czterech postów i więcej. Przejdź do naszej strony zasobów, aby pobrać.

jeśli przegapiłeś nasze pierwsze kilka postów z tej serii, lub jeśli nie jesteś pewien, czym jest Jenkins lub CI, wróć i przeczytaj: co to jest Jenkins i dlaczego powinieneś go używać?

jest to przewodnik krok po kroku, jak skonfigurować Jenkinsa do tworzenia i testowania aplikacji na Androida. W tym demo użyjemy przykładowej aplikacji używającej Bugfender SDK w Androidzie. Oczywiście będziesz chciał użyć własnej wbudowanej aplikacji lub biblioteki na Androida. Kroki dodawania własnego projektu Androida do Jenkins będą takie same.

budujesz aplikacje na iOS? Wypatrujcie kolejnego artykułu z tej serii już wkrótce.

po pierwsze, musisz przygotować maszynę do kompilacji i uruchamiania aplikacji na Androida. Jeśli jeszcze nie zainstalowałeś Jenkinsa, możesz wykonać kroki opisane w poprzednim poście, aby zainstalować Jenkinsa na swoim serwerze.

Konfigurowanie kompilacji aplikacji na Androida w Jenkins

Krok 1: Zainstaluj Java JDK

sudo apt-get install java-8-openjdk

Krok 2: Zainstaluj Android SDK

przejdź do https://developer.android.com/studio/index.html#downloads i pobierz link wymieniony w tabeli, aby uzyskać tylko narzędzia wiersza poleceń > Linux. Nie pobieraj niczego, po prostu skopiuj 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

bądź superbohaterem

odeprzyj błędy i zapewnij bezpieczeństwo swoim użytkownikom.

użyj Bugfender za DARMO Już Dziś

Krok 3: Skonfiguruj Jenkins

następnie zaloguj się do Jenkins i skonfiguruj zestaw SDK dla Androida, który właśnie zainstalowałeś:

Otwórz https://your-ci-server-name.com w swojej przeglądarce. Zobaczysz coś takiego:

  • przejdź do Zarządzaj Jenkinsem > skonfiguruj System
  • Sprawdź”zmienne środowiskowe”
  • Dodaj nazwę: ANDROID_HOME
  • Dodaj wartość: /var/lib/jenkins/android-sdk
  • kliknij „Zastosuj”, a następnie „zapisz”

Krok 4: Utwórz zadanie Androida

teraz wróć do strony głównej. Kliknij na nowy element. Wpisz nazwę projektu i wybierz ” projekt Freestyle.”

Krok 5: pobieranie kodu do Jenkinsa

następnie musisz dodać link do repozytorium, aby Jenkins mógł pobrać kod. Określ adres URL repozytorium w sekcji Zarządzanie kodem źródłowym. Jak wspomniano, użyjemy tego przykładowego repozytorium: https://github.com/bugfender/BugfenderSDK-android-sample.git.

jeśli masz repozytorium Mercurial lub Subversion, działają one dokładnie w ten sam sposób. Jeśli masz prywatne repozytorium, możesz również utworzyć klucze SSH, aby uzyskać dostęp do repozytorium za pomocą protokołu git.

Krok 6: Konfigurowanie wyzwalaczy kompilacji Jenkins

Możesz również określić wyzwalacze kompilacji, które automatycznie zbudują projekt za ciebie. Najlepiej jest użyć Hooka w celu automatycznego uruchomienia kompilacji, gdy ktoś wypycha kod do repozytorium.

dla BitBucket, Gitlab i większości dostawców Gita, możesz użyć opcji” Trigger buduje zdalnie”. Da to adres URL, który można skonfigurować jako webhook u dostawcy, aby automatycznie rozpocząć kompilację.

dla użytkowników GitHub najłatwiej jest znaleźć i zainstalować „wtyczkę GitHub” (w Manage Jenkins > Manage Plugins) i pojawi się specjalna opcja GitHub. Spowoduje to zainstalowanie webhooka dla Ciebie.

Krok 7: Zbuduj

gdy już masz kod źródłowy w Jenkinsie, nadszedł czas na zbudowanie. Jeśli twój projekt ma opakowanie Gradle, właśnie tego powinieneś użyć. W naszym przypadku utworzymy wywołanie kroku budowania skryptu Gradle w ten sposób:

jeśli masz projekt oparty na Ant, istnieje również wywołanie kroku budowania Ant lub dla maksymalnej elastyczności możesz użyć kroku budowania Execute shell.

Przetestuj swoją kompilację, naciskając „Zapisz”

I to wszystko. Twój pierwszy projekt na Androida został dodany do Jenkins. Teraz możesz rozważyć przyspieszenie Gradle i skonfigurowanie automatycznego testowania w Jenkins.

Zacznij naprawiać błędy szybciej teraz za darmo

Bugfender to najlepszy zdalny rejestrator dla aplikacji mobilnych.

Zarejestruj się

Przyspiesz Gradle (opcjonalnie)

jeśli używasz kompilacji opartych na Gradle, możesz zaoszczędzić trochę czasu, uruchamiając Gradle jako demona. Aby go uruchomić, wykonaj następujące czynności:

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

Uruchamianie testów jednostkowych

jeśli chcesz uruchomić testy jednostkowe, możesz to zrobić, dodając kolejny krok kompilacji za pomocą zadania test Gradle, w ten sposób:

Uruchamianie testów integracyjnych

aby skonfigurować testy interfejsu użytkownika, musisz uruchomić emulator. Mimo że Jenkins ma wtyczkę emulatora Androida, odkryliśmy, że nie została zaktualizowana i nie działa już z najnowszymi wersjami Android SDK. Oto nasze sugerowane obejście:

Krok 1: Pobierz emulator. Aby wyświetlić listę dostępnych zestawów SDK, Uruchom:

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

szybka uwaga na temat wyboru odpowiedniego obrazu: obrazy oparte na x86 działają szybciej, ale wymagają również przyspieszenia sprzętowego. Być może konieczne będzie włączenie akceleracji KVM (sudo modprobe kvm) na serwerze, a serwer nie może być maszyną wirtualną. Z tego powodu wybieramy obraz ramienia, który działa wolniej, ale działa.

Krok 2: w naszym przypadku chcemy uruchomić naszą aplikację na poziomie Android SDK 25, więc obrazy systemowe;android-25; google_apis; armeabi-v7a wydaje się odpowiedni, a następnie instalujemy go w ten sposób:

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

Krok 3: Po zainstalowaniu tworzymy z nim wirtualne urządzenie z Androidem (instancję emulatora) :

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

Krok 4: następnie używamy Supervisord, aby uruchomić emulator Androida jako usługę systemową, zawsze w tle. Aby go zainstalować:

sudo apt-get install supervisor

następnie utwórz plik konfiguracyjny w /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

Krok 5: Po wykonaniu tej czynności uruchom ponownie supervisord, aby zastosować zmiany:

sudo service supervisor restart

emulator powinien uruchomić się w tle. To może potrwać 1-2 minuty. Urządzenie emulatora pojawi się na liście urządzeń, gdy będzie gotowe:

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

Krok 6: w zadaniu Jenkins dodaj krok Execute Shell build w ten sposób:

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

kolejne kroki

jest więcej opcji, takich jak uruchamianie emulatora Androida, instalowanie aplikacji i uruchamianie różnych testów na nim.

ponadto istnieje kilka naprawdę ciekawych wtyczek, z którymi można grać:

  • Android Emulator Plugin-w tej chwili ta wtyczka nie działa poprawnie z najnowszym Android SDK. Ale możemy przypuszczać, że naprawią to i wkrótce znów będzie działać. Alternatywnie możesz użyć starszej wersji SDK.
  • Wtyczka podpisująca Androida
  • Wtyczka Google Play Android Publisher

aby uzyskać więcej postów z tej serii, sprawdź:

  • czym jest Jenkins i dlaczego powinieneś go używać?
  • Jak zainstalować Jenkinsa w Ubuntu
  • Jak dodać pierwsze zadanie iOS do Jenkinsa

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.