Deploy Hugo ke Firebase dengan Gitlab CI

23 Dec 2017 · 1 min read

Biasanya saya melakukan deploy dengan perintah firebase deploy. Akan tetapi perintah ini sama persis seperti FTP.

Semua file akan di-upload ke Firebase. Hal ini akan membuat kuota internet saya cepat habis 😄, resiko pakai paket data.

Lalu sebaiknya bagaimana?

Saya ingin mencoba workflow pak Ariya. Beliau deploy Hugo ke Firebase melalui Gitlab CI.

Gambarannya seperti ini:

Workflow Hugo

Sumber: ariya.io

Lalu, pada repo Gitlab, saya menggunakan konfigurasi CI seperti ini:

image: nohitme/hugo-firebase:0.31.1

before_script:
  - hugo version
  - firebase --version

hugo_firebase:
  stage: deploy
  only:
    - master
  except:
    - dev
  script:
    - rm -rf public
    - hugo --config config.production.toml
    - firebase deploy --token ${FIREBASE_TOKEN}

Saya menggunakan image docker dari nohitme/hugo-firebase. Ukurannya cukup besar, sekitar 76 MB. Karena image ini menggunakan Nodejs versi 9 dan Hugo versi terbaru (0.31.1).

Sebenarnya saya sudah coba beberapa Image. Tapi, tidak ada yang cocok. Inilah image yang paling sederhana menurut saya.

FIREBASE_TOKEN dalam konfigurasi CI di atas adalah variabel environtment yang kita tambahkan melalui Settings->CI/DI->Secret Variables.

Dengan menggunakan konfigurasi CI ini, waktu build-nya relatif lebih cepat. Biasanya anatara 30 detik sampai 2 menit.

Build CI Gitlab

Sekarang kita tinggal git push aja ke Gitlab untuk deploy ke Firebase.

Enak kaan!