Tahun Baru Wajah Baru: Monorepo, SSG Engine Baru, Theme Baru
Posted on
Mengawali tahun baru 2023, aku putuskan untuk mencoba hal baru:
- Mengganti SSG situs ini dari Hugo ke Zola, tidak ada alasan khusus, iseng saja.
- Mengganti Tema situs ini.
- Memindahkan situs ini dari Netlify ke Cloudflare Pages.
- Mencoba monorepo untuk situs ini, alasannya karena biasa coba-coba SSG (Jekyll, Hugo, Zola, dll). Awalnya setiap SSG aku buatkan branch baru, lama-lama terasa ribet. Untuk menyederhanakan maka aku ubah jadi monorepo. Setiap SSG punya folder sendiri dalam satu branch yang sama. Benefitnya, lebih mudah maintain, reuse static assets jadi mudah.
Ngomong-ngomong Cloudflare Pages ini cukup straight forward ketika combine dengan github action. Cukup bikin project di cloudflare page, setup custom domain di cloudflare page, generate token profile cloudflare, bikin github action di github repo dan selesai.
Berikut ini contoh github action untuk deploy ssg zola ke cloudflare pages
cat .github/workflows/zola.yml
name: "Zola: build the website and publish to cloudflare page"
on:
# detect push event in branch monorepo and change directory zola
push:
branches:
- monorepo
paths:
- "zola/**"
# detect push event in branch monorepo and change directory zola
pull_request:
branches:
- monorepo
paths:
- "zola/**"
# allow to trigger manually via dashboard
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-22.04
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
steps:
- name: Git checkout and update theme
uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 0
- name: Install and run zola build
run: |
sudo snap install --edge zola
cd zola
zola build --base-url https://www.sumarsono.com
- name: Publish to cloudflare pages
uses: cloudflare/[email protected]
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
command: pages publish zola/public --project-name=zola --commit-dirty=true --branch=main
Happy new year 2023!