Konfigurasi Gitlab CI Autodeploy Hexo ke Firebase Hosting

Sebelumnya saya sudah pernah menulis tentang perpindahan blog saya yang sebelumnya di post ini. Kali ini saya akan berbagi resep atau konfigurasi berkas .gitlab-ci.yml agar tulisan kita otomatis terpublish ke Firebase Hosting ketika kita melakukan commit + push ke server Gitlab.

Nah berikut ini adalah berkas konfigurasi saya.

image: registry.gitlab.com/showcheap/hexo-firebase-ci

cache:
  paths:
    - node_modules/
    - functions/node_modules

deploy:
  stage: deploy
  environment: Production
  only:
    - master
  script:
    - npm install
    - hexo generate
    - npm install --prefix ./functions
    - firebase deploy -m "Pipeline $CI_PIPELINE_ID, build $CI_BUILD_ID" --non-interactive --only hosting --token $FIREBASE_TOKEN

Konfigurasi di atas saya menggunakan custom docker image saya yang sudah saya sesuaikan untuk kebutuhan deploy hexo (https://gitlab.com/showcheap/hexo-firebase-ci). Pada konfigurasi tersebut saya menyimpan token firebase ($FIREBASE_TOKEN) di environment variable yang dapat diatur pada pengaturan repository di gitlab.

Saya juga melakukan konfigurasi triger/pemicu Gitlab CI Runnernya agar melakukan deploy pada branch master saja.