โ๏ธ 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
- Pastikan file
generate.js
dansummary.js
berada di foldertools/
. - Kamu bisa ubah waktu
cron
sesuai zona waktu lokal (misal UTC+7 = 04:00 UTC untuk jam 11 pagi). - Gunakan
npm ci
alih-alihnpm install
agar build lebih cepat dan konsisten.
๐ฏ 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.