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.

Secret Variabel Github

Nilai dari variabel ini adalah personal token dari Github, yang sudah dibuat di Settings->Tokens.

Percobaan build…

Build CI Gitlab

Sukses 🌮

Ini hasilnya di repo Github Pages:

Github Pages Blog Ardianta

Berikutnya saya ingin agar repo di Github sinkron dengan Gitlab. Tapi saat masih belum tahu caranya.

Ya sudah, biarkan saja begini 😄.