Read more post at blog.jhonarendra.com

Home Blog Mencoba Github Action

Mencoba Github Action

Posted on March 26, 2022

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 dan jobs. 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 pada jobs, 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.

Created By Putu Jhonarendra. Pageviews: 0