Github Action
Github Action adalah alat untuk mengotomatiskan tindakan pada repositori (CI/CD). Banyak hal yang dapat dilakukan dengan Github Action, misalnya membuat fungsi auto build aplikasi atau auto deploy ketika ada perintah push/pull request pada suatu repositori. Selain itu, beberapa repositori menggunakan nya sebagai cron atau suatu fungsi yang berjalan otomatis pada rentang waktu tertentu, misalnya 1 kali sehari, 1 kali setiap jam dan lain sebagainya.
Untuk menambahkan github action, sebenarnya sudah banyak tutorial yang bisa didapat di internet ataupun dari dokumentasi github action https://docs.github.com/en/actions.
Diatas adalah contoh step atau prosedur dari github action untuk meng-generate Nuxt Js. Berikut adalah kode programnya.
name: generate
on:
push:
branches:
- main
jobs:
generate:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
node: [14]
steps:
- name: Checkout
uses: actions/checkout@master
- name: Setup node env
uses: actions/setup-node@v2.1.2
with:
node-version: ${{ matrix.node }}
- name: Install dependencies
run: yarn
- name: Generate
run: yarn generate
- name: Commit changes
run: |
git config --local user.email "emailanda"
git config --local user.name "usernameanda"
git add -A
git commit -m "generate"
- name: Push changes
uses: ad-m/github-push-action@master
with:
force: true
branch: ${{ github.ref }}
github_token: ${{ secrets.GITHUB_TOKEN }}
- Pada level pertama ada
name
,on
danjobs
.name
adalah nama dari action,on
adalah kapan menjalankan aksi tersebut.jobs
adalah prosedur yang dilakukan. - Bisa dilihat pada
on
saya membuat action berjalan ketika ada push pada branch main - Lihat pada bagian
steps
padajobs
, terdapat proses setup node js, install dependencies, dan generate nuxt project. Setelah di-generate, dilakukan commit dan push ke branch tersebut.
Namun bisa juga menggunakan peaceiris/actions-gh-pages@v3
seperti pada https://nuxtjs.org/deployments/github-pages.
Saya tidak menjalankan unit testing on push karena proses deploy menjadi sangat lama, mungkin nanti akan menggunakan action cron yang dijalankan 1 kali sehari untuk mengontrol aplikasi.