LAYAR KOSONG

Ngoprek Workflow GitHub Actions

Bedah Tuntas Proses Deploy Cerdas ke Branch 'site' Biar Tidak Boros Waktu!

Visual Alur Kerja

Diagram: Proses sinkronisasi antar branch dengan filter rsync.

Tujuan Utamanya Apa Sih?

Intinya, workflow ini dibikin buat nge-handle proses deploy website statis kamu. Bayangin kamu punya branch main buat nulis kode, artikel, atau aset lainnya. Nah, workflow ini bakal secara otomatis nyalin file-file penting saja ke branch site.

📋

Whitelist System

Cuma nyomot file yang kita izinkan aja. Folder rahasia? Aman!

Smart Check

Kalau tidak ada perubahan konten, dia diem aja. Hemat kuota runner!

Bongkar Satu per Satu!

1

Pemicu (Triggers)

Workflow ini bakal "bangun" dan jalan otomatis kalau salah satu dari dua hal ini terjadi:

  • 🚀 Push commit baru ke branch main.
  • 🖱️ Klik tombol "Run workflow" manual di GitHub.
on:
 push:
 branches: [main]
 workflow_dispatch:
2

Izin (Permissions)

Bagian ini krusial. Kita ngasih "surat izin" biar dia boleh nulis (write) ke repo. Kalau tidak, proses push bakal ditolak mentah-mentah.

permissions:
 contents: write
3

Pekerjaan (Jobs) Utama

Di sini proses "sulap" file terjadi. Intip langkah kuncinya:

Sinkronisasi File

Pake rsync dengan aturan whitelist yang ketat.

rsync -a --delete \
 --include='artikel/*' \
 --include='ext/*' \
 --exclude='*' \
 source/ deploy_dir/

Deteksi Perubahan

Bandingin folder baru sama yang udah live. Kalau isinya sama, ya tidak usah repot-repot deploy!

if git diff --no-index --quiet deploy_dir/ site/; then
 echo "changed=false" >> $GITHUB_OUTPUT
fi