Github Actions untuk React Native Automation

25/10/2020

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.

Isi workflow