Apa yang terbayang jika melihat konsep ini?
Sebuah mekanisme yang dikenal dengan Continuous Integration. Dengan memanfaatkan mekanisme ini, developer tidak perlu susah-susah lagi dalam proses delivery aplikasi. Hanya melakukan proses pemisahan branch dan aturan-aturan di gitlab-ci maka aplikasi android dapat di delivery sesuai kebutuhan. Low effort, less bandwidth.
Docker Image
Untuk memanfaatkan fitur ini, yang perlu di siapkan adalah docker untuk kebutuhan compile dan delivery apk. Silahkan menggunakan docker image yang sudah saya custom sesuai kebutuhan. Dan configurasi gitlab-ci nya bisa di lihat di sini: gitlab-ci-android
Saat ini docker image baru mencoba di tambahkan support NDK tapi masih gagal. Tapi untuk support SDK sudah support.
Penambahan file .gitlab-ci.yml
Supaya Gitlab bisa melakukan proses CI maka perlu di setup ci dengan nama .gitlab-ci.yml. Contoh sudah ada direpo. Jika langsung lakukan copy paste maka gitlab akan melakukan proses CI saat terjadi perubahan di repo dengan aturan:
- branch develop melakukan build apk delivery ke fabric
- branch master melakukan build apk dan delivery ke playstore
Dengan penambahan file tersebut, maka jika terjadi perubahan di branch develop yang ada di gitlab, maka gitlab akan melakukan proses compiling source menjadi apk, dan jika sukses akan melakukan otomatis delivery ke fabric dan akan mengirimkan email proses sukses build. Bagaimana jika akan langsung di integrasikan dengan playstore?
Package play-publisher
Untuk otomatis delivery ke playstore, langkahnya sedikit lebih panjang dibandinkan dengan fabric. Yang perlu dilakukan adalah melakukan setting gradle untuk package ini:
gradle-play-publisher dan ikuti langkah-langkah terkait key dan kebutuhan publish ke playstore baik alpha, beta atau pun release. Disarankan untuk proeses delivery ini, masukkan ke beta tester terlebih dahulu, jangan langsung larikan ke product release. Akhir kata
Dengan memanfaatkan fitur-fitur seperti automatic delivery / autodeploy / Continuous Integration, maka kita mampu menghemat waktu dalam proses delivery. Yang perlu dilakukan adalah dengan melakukan push pengerjaan ke gitlab, maka sisanya akan di proses oleh gitlab itu sendiri. So, apakah menarik?