Experimen Deploy Hugo dari Gitlab CI ke Github Pages
01 Jan 2018 · 1 min read
Di awal tahun baru, sepertinya pegawai Travis CI sedang liburan. Hal ini munkin menyebabkan gangguan build di Travis CI. Akibanya lama menunggu Queue build-nya.
Sebagai alternatif, saya menggunakan CI milik Gitlab.
Ini adalah isi file .gitlab-ci.yml
di repo blog saya:
image: andthensome/alpine-hugo-git-bash:0.31.2
before_script:
- hugo version
github_pages:
script:
- rm -rf public
- git clone --depth 1 https://ardianta:$GITHUB_ACCESS_TOKEN@github.com/ardianta/ardianta.github.io.git public
- hugo --config config.production.toml
- cd public
- git config user.email "<your git email>"
- git config --global user.name "<your git name>"
- git add -A
- git commit -m "Build from $CI_SERVER_NAME $CI_PIPELINE_ID"
- git push
artifacts:
paths:
- public
only:
- master
Saya menggunakan image docker andthensome/alpine-hugo-git-bash,
karena membutuhkan perintah hugo
dan git
saat melakukan build.
Selain itu, image ini ukurannya relatif kecil yaitu 44MB.
Perintah hugo
untuk me-render dari source code, lalu git
untuk melakukan clone
dan push ke github pages.
Variabel env untuk $GITHUB_ACCESS_TOKEN
bisa kita isi di Settings->CI/DI->Secret Variables.
Nilai dari variabel ini adalah personal token dari Github, yang sudah dibuat di Settings->Tokens.
Percobaan build…
Sukses 🌮
Ini hasilnya di repo Github Pages:
Berikutnya saya ingin agar repo di Github sinkron dengan Gitlab. Tapi saat masih belum tahu caranya.
Ya sudah, biarkan saja begini 😄.