Pada artikel ini, saya membawa instruksi perhatian Anda untuk menginstal dan mengkonfigurasi TeamCity untuk mengotomatisasi perakitan dan pengujian proyek Android di bawah Windows.Saya juga akan memperhatikan fitur pengaturan lingkungan untuk proyek Android (yang saya temukan dalam proses penelitian) dan berbagai macam hal yang dapat membantu membuat hidup lebih mudah bagi penguji dan pengembang pemula.Tujuan:
Saat memperbarui kode proyek, berikut ini harus terjadi:- Proyek pembangunan otomatis
- Jalankan Autotests UI
- Mengekspor debug dan lepaskan file APK untuk pengujian manual selanjutnya
- Beri tahu semua anggota tim pengembangan hasil
Rencana:
- Instal dan konfigurasikan Java JDK
- Instal dan konfigurasikan Android SDK
- Mengatur grader terpisah untuk debug
- Mempersiapkan proyek Android
- Instal TeamCity Server dan Build Agent
- Menyiapkan Proyek TeamCity → Bangun untuk membangun proyek dan mendapatkan APK instalasi
- Konfigurasikan langkah pembuatan dengan autotest UI
Bagian utama
1. Menginstal dan Mengkonfigurasi Java JDKBerlawanan dengan kepercayaan populer tentang menginstal versi terbaru Java, JetBrains di situs web resminya mempublikasikan versi Java SDK yang direkomendasikan : tautanMenginstal versi yang direkomendasikan: tautanJuga menginstal Variabel Lingkungan:JAVA_HOME
- path ke folder dengan SKD Java untuk menggunakan CI.
Contoh:
C:\Java\jdk1.8.0_181
Lebih baik dimasukkan ke dalam variabel Sistem.- Path - path ke folder dengan Java SKD untuk digunakan dari baris perintah.
Contoh:
C:\Java\jdk1.8.0_181\bin
Lebih baik dimasukkan ke dalam variabel Pengguna.
Kami memeriksa pemasangan:Di CMD di direktori mana pun yang kami masukkan: java -version
Java harus menjawab bahwa:
2. Instal dan konfigurasikan Android SDKKami tidak akan menginstal alat Android SDK secara terpisah. Android telah melarang untuk membuat proyek dari baris perintah. Akan lebih mudah untuk men-debug kemungkinan kesalahan jika kita segera menginstal Android Studio.Instal versi terbaru: tautanJuga instal Variabel Lingkungan:ANDROID_HOME
Contoh: C:\Users\1\AppData\Local\Android\Sdk
ANDROID_AVD_HOME
Contoh: C:\Users\1\.android\avd
Jalur:Contoh: C:\Users\1\AppData\Local\Android\Sdk\platform-tools\
- luncurkan utilitas dari konsol oleh kami dan CI.Periksa: ketik CMD: adb --help
Dapatkan informasi tentang versi saat ini dan perintah yang tersedia:
Path:Contoh: C:\Users\1\AppData\Local\Android\Sdk\emulator\
- Mulai emulator dari konsol oleh kami dan CI.Periksa: kami mengetikkan CMD emulator -version
Kami mendapatkan informasi tentang versi saat ini:
3. Instalasi Gradle Gradletermasuk dalam Android Studio, tetapi kami akan menempatkan satu lagi untuk debug dari konsol.Versi ini tidak penting, karena diasumsikan bahwa proyek akan diluncurkan melalui pembungkus Gradle.Saya sarankan menginstal versi yang mirip dengan yang digunakan dalam proyek, misalnya Gradle 3.3. Link .Kami juga menginstal Variabel Lingkungan:GRADLE_HOME
- tidak perlu, karena CI akan menggunakan Gradle Android Studio.GRADLE_USER_HOME
Contoh: c:/gradle-cache
Aktual untuk Windows Server, sebagai tanpanya, selama perakitan proyek, semua pustaka Gradle yang diunduh akan disimpanC:\Windows\System32\config\systemprofile\.gradle
lebih lanjut CI tidak akan dapat mengakses file-file ini.Path:C:\Gradle\gradle-3.3\bin
- path ke folder Gradle untuk penggunaan yang nyaman dari baris perintah.Periksa: kami mengetikkan CMD gradle -v
Kami menerima informasi tentang versi saat ini:
4. Persiapan proyek Android4.1. Buat proyek uji di Android Studio.Jenis Kegiatan - Aktivitas Navigasi Bawah. Ini akan berguna nanti untuk membuat tes UI.4.2. Nonaktifkan Gradle Daemon secara berkelanjutan sehingga Gradle Daemon tidak muncul di CI:Tambahkan file gradle.properties:
add org.gradle.daemon=false
4.3. Kami juga menambahkan ke file .gitignore
(sesuai selera Anda) sehingga file tambahan tidak tertinggal di VCS. 4.4. Buat keystore (atau gunakan yang sudah ada) di folder proyek. Link ..gradle
.idea
/build/
local.properties
4.5. Tambahkan tautan ke keystore ke Gradle sehingga kami dapat membangun APK lengkap.Contoh:android{
... //
signingConfigs {
release {
storeFile file("keystorefile.jks") //
storePassword "Password" //
keyAlias "android" // keyAlias,
keyPassword "Password" // APK
}
}
... //
buildTypes {
release {
... //
signingConfig signingConfigs.release // APK
}
}
}
4.6. Untuk menguji kesehatan sistem, kami akan mengumpulkan proyek baru dari baris perintah. Masukkan CMD:cd < >
Misalnya: C:\Users\1\Documents\GitHub\Command2
Pergi ke proyek.Masukkan: Kamigradlew assembleDebug
menunggu selesainya perakitan.Jika semuanya baik-baik saja, maka kita mendapatkan hasil BUILD SUCCESSFUL.
Kami pergi ke folder proyek: app\build\outputs\apk\debug
Ini berisi file APK baru yang dapat diinstal pada perangkat dan memeriksa apakah semuanya berfungsi.4.7. Kami juga akan memeriksa apakah alat SDK dan manajer AVD diluncurkan.4.7.1. Luncurkan Android Studio dan buat emulator. Anda tentu saja dapat membuatnya di baris perintah, tetapi kami memiliki shell UI yang terinstal, itu dosa untuk tidak menggunakannya.Alat → Manajer AVD:
Versi SDK dari emulator yang dibuat harus setidaknya sama besar dengan proyek SDK kami.4.7.2. Membuat emulator. Mari kita periksa peluncurannya dari konsol. Kita masuk di baris perintah:start /min emulator -avd < >
Contoh:start /min emulator -avd Pixel_2_API_25
Perhatikan bahwa kita menggunakan fungsi /min
untuk memulai emulator di latar belakang. Kalau tidak, ia tidak akan diizinkan untuk memasukkan perintah baru di CMD.Perangkat sedang berjalan:
4.7.3. Kami memeriksa instalasi APK yang dikumpulkan.Kita masuk dalam CMD:adb install <path_to_apk>
Contoh:adb install C:\Users\1\Documents\GitHub\Command2\app\release\app-release.apk
Berhasil:
4.7.4. Kami memeriksa peluncuran APK yang diinstal.Kita masuk dalam CMD:adb shell monkey -p < > -c android.intent.category.LAUNCHER 1
Contoh:adb shell monkey -p com.panarik.command -c android.intent.category.LAUNCHER 1
Aplikasi dimulai:
4.7.5. Kami mengunggah proyek ke repositori jarak jauh, misalnya, ke GitHub. Periksa apakah proyek akan diunduh:Instal Git BASH (jika kami menggunakan Git VCS). Link .Kami mengkloning proyek dari repo jarak jauh. Masuk ke konsol Git BASH:git clone < .git>
Contoh:git clone https://github.com/panarik/Command2.git
Kami melihat hasilnya. Proyek ini disalin ke folder lokal:
Semuanya siap untuk menginstal dan mengkonfigurasi TeamCity. Mengapa kita melakukan latihan dengan baris perintah, dan tidak segera menginstal TeamCity. Akan jauh lebih mudah untuk memastikan terlebih dahulu bahwa proyek ini berfungsi, sehingga di masa depan akan lebih mudah untuk melokalisasi kemungkinan bug pada tahap pengembangan di TeamCity.5. Menginstal TeamCity Server dan Build AgentSaya tidak akan menjelaskan proses instalasi secara rinci. Dia ada dalam panduan resmi dan banyak sumber lainnya. Port server TeamCity saya usulkan untuk menetapkan non-standar, sehingga lebih sulit untuk menghitung pemindaian port.6. Mengkonfigurasi Proyek TeamCity → MembangunDalam pengaturan umum, Anda hanya perlu mengatur path ke output APK:Contoh:app\build\outputs\apk\release\app-release.apk
6.1. Menyiapkan TeamCity VCS RootsSemuanya standar. Dalam proyek kami, kami menggunakan Git, jadi kami memasukkannya dan tautan ke repo jarak jauh. Contoh:https://github.com/panarik/Command2.git
6.2. Konfigurasi Build TeamCityTambahkan Langkah Build, yang akan mengkompilasi proyek dan menampilkan APK. Dalam proyek kami, kami menggunakan Gradle.Masukkan dalam bidang tugas Gradle:clean build assembleDebug --no-daemon
(--no-daemon untuk jaga-jaga, dan ini harus berfungsi sebagai subskrip ke file yang kita lakukan di bagian 4.2)
Klik Jalankan, kita mendapatkan APK.7. Mengkonfigurasi langkah-langkah pembuatan dengan autotest UI Kamisampai pada bagian yang paling menarik, yaitu, peluncuran otomatis tes UI.Langkah-langkah akan diluncurkan menggunakan file .BAT. Jauh lebih nyaman untuk menulis kode, mengubahnya dengan cepat tanpa harus masuk ke UI TeamCity, dll.7.1. Pertama, buat langkah build dengan menjalankan emulator.Anda dapat membuat URL ke BATnik sepenuhnya, untuk kenyamanan, saya membuat Lingkungan di TeamCity BAT_FILES
dengan path ke folder dengan BATs: kami
menulis kode awal emulator dalam file.Contoh:start /min "emulator" /D "C:\Users\1\AppData\Local\Android\Sdk\emulator" emulator.exe -avd Pixel_2_API_25 -no-snapshot-save -no-boot-anim
Daftar perintah dan parameter di situs luar: tautan .7.2. Buat langkah build dengan jeda saat emulator dimuat. Anda dapat segera mendaftarkan langkah pertama di .BAT, tetapi akan lebih jelas.Contoh tim semacam itu yang telah memata-matai di Internet:adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done; input keyevent 82'
Dari UI akan terlihat seperti ini:
Daftar semua tim di luar situs: tautan.7.3. Jalankan tes.Juga dari baris perintah. Semuanya individual di sini.Contoh perintah:gradlew connectedDebugAndroidTest
7.4. Kami menghentikan emulator.Contoh perintah:adb -s emulator-5554 emu kill
Proses selesai.Anda juga dapat mengunggah laporan dalam langkah terpisah. Secara default, ini disimpan dalam folder proyek.Terima kasih banyak atas perhatiannya!Jika ada yang punya saran untuk memperbaiki kode untuk langkah-langkah, dan saran untuk perbaikan, saya akan sangat berterima kasih.