CodeMagic memang ajaib

3 minute read

codemagic image

Akhirnya menulis lagi! kali ini aku ingin menulis tentang CI/CD (continous integration dan develivery) risetnya demi kebutuhan di kerjaan, tujuannya adalah efisiensi waktu development product product forca mobile , kebetulan di team RnD forcaErp pt sisi (sinergi informatika semen indonesia) mobile developer belom menerapkan tools CI/CD berbeda dengan ForcaErp devnya yang sudah memakai jenkins. monggo check erpForca , riset kali ini menggunakan tools CodeMagic tools yang benar benar fokus CI/CD untuk Flutter. Tl;dr dibawah ini adalah setup di workflow default dari codemagic dengan tujuan akhir delivery google play console android dan app store untuk ios.

Setting Repository Project

setelah login dengan git version control dimana codemagic mengakomodir github, gitlab dan bitbucket secara otomatis semua repository kita di load dihalaman codemagic.

codemagic home

pilih setting project yang akan kita setup untuk CI/CD di codemagic.

Setup Triggers Branch

build triggers disini adalah branch repository project yang di jadikan pemicu untuk codemagic melakukan build normalnya adalah branch master tapi tergantung kita jugak.

codemagic build trigger

disana ada pilihan pattern yang bisa di gunakan misal * menunjuk ke semua branch menjadi trigger untuk keterangan lengkapnya bisa klik show pattern examples jugak ada opsi dibawahnya untuk automatic triggering buildnya otomatis setiap waktu ada push ke branch atau setiap ada pull request ke branch.

Foo
show pattern

codemagic build every push

Test

test disini adalah mengarah ke package test di project flutter karena di project saya tidak memakai unit test jadi disini tidak saya centang untuk enable flutter test dan stop build if test fail yang berarti flow test ini saya lewati codemagic test

Build

di flow build ini kita bisa memilih bakal di build versi flutter berapa repository kita :

Foo
pilihan build flutter version

sesuai goal dari riset saya yang mau jadikan dua mobile platform sekaligus yaitu ios dan android maka dibawah ini adalah setup flow build saya

codemagic build ios

Publish

Foo
tampilan flow publish

di dalam flow publish ini ada beberapa setting yang harus di setup saran saya adalah pastikan dulu apakah CI bekerja dengan lancar setelah itu baru setting untuk CD, setting apa saja yang untuk CI ?:

settingan flow publish untuk CI

1.android code signing untuk menghasilkan apk.release apa saja yang diperlukan kunjungi link ini

codemagic setting flow

2.ios code signing kalau ingin menghasilkan file .ipa disana ada pilihan automatic dan manual, saya sarankan untuk manual karena automatic percobaan saya beberapa kali masih menemui error. di manual cukup isi dengan code signing certificate dalam format .p12 dan isi provsioning profiles (disarankan yang distribution) dengan format .mobileprovision, kalau belom tahu cara untuk mendapatkan certificate .p12 bisa kunjungi link ini, jika ios code signing ini tidak di isi maka artifactnya dalam bentum runner.

codemagic ios signing

3.setup email yang akan dijadikan archive artifact dan jugak untuk notifikasi baik ketika build failed ataupun sukses, ada opsi jugak untuk slack selain email

codemagic email

Test CI (Continous Integration)

Foo
start new build

pilih start new build pojok kanan atas

Foo
tampilan ketika berhasil test CI

jika berhasil check email/slack yang sudah di setup seperti dibawah ini:

Foo
tampilan email

setelah memastikan CI berjalan dengan semestinya selanjutnya adalah setup CD

settingan flow publish untuk CD

ketika settingan CI kita sudah tidak menemui kendala berikutnya tinggal setup flow publish google play untuk android dan apple store connect untuk ios yang mana tujuannya adalah automate delivery ketika build sukses.

google play

yang dibutuhkan untuk menyinkronkan codemagic ke google play adalah credential api google play file format dalam bentuk .json bagaimana cara untuk mendapatkan file ini bisa di sima artikel ini, setelah itu centang publish even if test fail.

codemagic googleplay

apple store connect

isi dengan apple id yang sudah terdaftar di apple development untuk password saya sarankan memakai application-spesific password bagaimana cara membuatnya? kunjungi appleid.apple.com –> security –> authentiiasi two factor . sertakan app id lalu uncentang publish even if test fail

codemagic iostore

Test CI/CD

bisa kembali ke ide repository local untuk push ke git atau tombol start new build di pojok kanan atas di codemagic

Foo
proses build

kalau sudah sukses akan seperti dibawah ini

codemagic build succes

untuk memastikan bisa di check di google play console dan ios store

Foo
tampilan di google play
Foo
tampilan di apple store

seperti itulah setup codemagic yang telah saya riset masih banyak keluwesan yang ada di codemagic yang belom aku explore, mungkin tulisan berikutnya akan lebih dalem lagi semoga tentang codemagic, disini saya belom sempet membandingkan dengan tool sejenis apakah perfomance, security dll. mungkin di kemudian hari bakal bisa kasih testi kalau sudah cobain tool selain codemagic, okey terimakasih semoga bermanfaat.

referensi :