Continuous Integration untuk iOS menggunakan Fastlane dan Jenkins Pipeline
Dalam Agile, Continous Integration dan Continous Deployment adalah hal yang cukup signifikan pentingnya. Premisnya adalah semakin cepat kita deploy semakin cepat kita dapat feedback, dan makin sering kita dapat feedback, maka semakin mudah juga kita untuk berubah seiring jaman.
Tapi tidak dipungkiri juga kalau kita deploy ke Apple Store setiap hari, malah bikin bete pengguna. Karena itu umumnya untuk deployment ke end user, dilakukan setiap 2 minggu sekali atau lebih. Oleh karena itu Continous Integration dan Deployment ini dimaksudkan bagaimana apps lebih cepat dikirim ke beta tester, atau Test Engineer.
Di sini, kita coba mensetup CI untuk iOS menggunakan Fastlane dan Jenkins.
Fastlane
Dari webnya:
fastlane is the tool to release your iOS and Android app 🚀
It handles all tedious tasks, like generating screenshots, dealing with code signing, and releasing your application.
Fastlane kita pakai untuk test, dan juga untuk deploy ke crashlytics. Itu membuat script untuk building, testing, dan deploy itu jadi mudah.
Contoh script Fastfile yang kami pakai:
Jenkins
Jenkins adalah tools untuk CI yang awal awal saya tau. Itu mudah diset, bisa kita host sendiri, dan banyak dukungan komunitas. Salah satu Jenkins plugin yang kita pakai adalah pipeline. Pipeline membuat kita bisa membuat proses itu jadi sebuah proses yang bersambung. Sehingga kita tahu proses testing kita sudah sampai mana.
Ada lagi?
Kita juga butuh sebuah Mac machine dengan Xcode terinstall. Bisa di cloud, atau di komputer sendiri, dan Jenkins yang kita set, harus bisa akses ke mac machine.
Apa benefitnya semua ini?
Benefitnya kita tahu kalau code is working, dan pada akhirnya akan menghasilkan artifact yang bisa dipakai oleh tester, atau siapapun yang ingin the latest version.