Github Actions untuk React Native Automation
Penggunaan CI/CD sebagai metode untuk otomatisasi pengembangan aplikasi multi-platform sudah banyak dilakukan. Otomatisasi mempermudah developer dalam melalui workflow development dari fase awal hingga fase deployment. Beberapa version control platform seperti Gitlab dan Github menyediakan fitur CI/CD yang mempermudah developer dalam melakukan otomatisasi.
Github Action merupakan fitur CI/CD yang disediakan oleh Github. Fitur ini sangat mempermudah developer dalam membuat pipeline otomatisasi hanya dengan mengkonfigurasi file YAML.
CI/CD cukup memudahkan ketika mengembangkan aplikasi cross-platform dengan React Native. Karena dengan memanfaatkan metode ini, developer dapat melakukan testing dan build secara otomatis setiap kali melakukan push code melalui Github. Begitu juga developer tidak perlu khawatir apabila melakukan proses build dengan laptop yang memiliki standar di bawah ~~UMR~~ rata-rata, karena proses build atau test tidak lagi dilakukan pada environment local.
Disclaimer : Build apk dari project react-native dengan spesifikasi laptop seadanya tidak mudah, kamerad.
Pertama, buat direktori .github/workflow
di root project. Kemudian tambahkan file build.yaml
pada direktori tersebut. Di dalam file build.yaml
berisi konfigurasi workflow Actions yang akan dijalankan.
name: build-android
on:
push:
branches:
- master
Baris tersebut merupakan nama workflow dan branch yang digunakan saat melakukan proses pertama kali.
jobs:
install-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install npm dependencies
run: |
npm install
- name: Run tests
run: |
npm test
Bagian ini menjelaskan jobs atau flow yang dilakukan workflow. Setiap job berisi steps yang akan dijalankan. Setiap step diberi identifier name:
dan run:
berisi perintah yang akan dijalankan workflow.
build-android:
needs: install-and-test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install npm dependencies
run: |
npm install
- name: Make Gradlew Executable
run: cd android && chmod +x ./gradlew
- name: Build Android Release
run: |
cd android && ./gradlew assembleRelease
- name: Upload Artifact
uses: actions/upload-artifact@v2
with:
name: app-release.apk
path: android/app/build/outputs/apk/release/
Sampai bagian akhir ini, workflow akan menjalankan perintah build dan generate .apk
file. Workflow akan dijalankan setiap kali developer melakukan commit & push melalui version control github.