โš™๏ธ Workflow Otomatis Build & Generate Site Files di GitHub Pages

Ketika kamu mengelola proyek berbasis GitHub Pages, penting untuk memastikan semua proses build berjalan otomatis. Workflow ini membantu kamu menghasilkan file HTML, JSON, dan aset lain dari direktori sumber (seperti artikel/) setiap kali ada perubahan. Dengan GitHub Actions, semua itu bisa dilakukan tanpa harus menjalankan build manual di lokal.

Workflow yang kita bahas di sini akan membangun situs secara otomatis, memperbarui file artikel JSON, dan memastikan hasil akhir siap untuk di-deploy di cabang gh-pages atau main.

๐Ÿ“‚ Struktur & Lokasi File

Simpan file berikut di direktori:

.github/workflows/build.yml

๐Ÿงฉ Isi Lengkap Workflow YAML

Berikut skrip lengkapnya, dengan komentar untuk setiap bagian:

# Nama workflow di-update untuk mencerminkan semua tugasnya
name: Build and Generate Site Files

on:
  push:
    branches: ["main"]
    # === Pemicu kembali ke struktur 'artikel/' ===
    paths:
      - 'artikel/*.html'
  workflow_dispatch:
  schedule:
    - cron: '0 21 * * *'  # Jalankan otomatis setiap pukul 21:00 UTC

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: Install dependencies
        run: npm ci

      - name: Generate site files
        run: node tools/generate.js

      - name: 3.9 Summary & Links
        run: node tools/summary.js

      - name: Copy artikel.json ke folder artikel/
        run: cp -f artikel.json artikel/

      - name: Commit & Push hasil build
        run: |
          git config --global user.name "github-actions[bot]"
          git config --global user.email "github-actions[bot]@users.noreply.github.com"
          git add .
          git commit -m "๐Ÿš€ Build otomatis: update site files"
          git push

๐Ÿง  Penjelasan Tiap Bagian

1๏ธโƒฃ **Trigger (on:)** โ€” Workflow ini akan aktif setiap kali ada perubahan pada folder artikel/, bisa juga dijalankan manual (dispatch) atau terjadwal (cron).

2๏ธโƒฃ **Setup Node.js** โ€” Menggunakan versi terbaru agar kompatibel dengan dependensi modern.

3๏ธโƒฃ **Generate site files** โ€” Tahap ini menjalankan skrip khusus seperti tools/generate.js untuk membuat struktur konten situs dari artikel HTML.

4๏ธโƒฃ **Copy artikel.json** โ€” Menyalin metadata hasil build ke folder artikel/ agar mudah diakses oleh front-end.

5๏ธโƒฃ **Commit & Push otomatis** โ€” Menyimpan semua hasil build ke repositori, lengkap dengan pesan commit yang rapi.

๐Ÿ’ก Tips

๐ŸŽฏ Kesimpulan

Dengan workflow YAML ini, proses pembangunan situs jadi otomatis sepenuhnya. Kamu tinggal fokus menulis artikel, dan GitHub Actions yang akan mengurus build serta update file JSON setiap hari. Tidak perlu build manual, tidak ada kekhawatiran lupa commit hasil generate.

๐Ÿ“˜ ๐Ÿฆ ๐Ÿ’ฌ ๐Ÿ’ผ
×