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:
Bedah Tuntas Proses Deploy Cerdas ke Branch 'site' Biar Tidak Boros Waktu!
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.
Cuma nyomot file yang kita izinkan aja. Folder rahasia? Aman!
Kalau tidak ada perubahan konten, dia diem aja. Hemat kuota runner!
Workflow ini bakal "bangun" dan jalan otomatis kalau salah satu dari dua hal ini terjadi:
main.on: push: branches: [main] workflow_dispatch:
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
Di sini proses "sulap" file terjadi. Intip langkah kuncinya:
Pake rsync dengan aturan whitelist yang ketat.
rsync -a --delete \ --include='artikel/*' \ --include='ext/*' \ --exclude='*' \ source/ deploy_dir/
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