Memindahkan Github Pages ke Firebase

Beralih ke Let's Encrypt dari Google

posted to Firebase on 07 April 2017

Jadi semalam teman-teman di Pegelinux sedang ramai membicarakan masalah static web. Sebagian besar member menggunakan Github Pages sebagai layanan hostingnya, karena pada artikel Firebase Project Deployment from Github memungkinkan kita untuk melakukan deploy ke Firebase melalui Travis-CI maka pada kesempatan ini kita akan coba memindahkan blog ini ke Firebase.

Kurang lebih cara yang akan kita lakukan sama dengan artikel Firebase Project Deployment from Github, namun ada beberapa perubahan pada .travis.yml.

Penting!!! jekyll menggunakan folder _site ketika melakukan build, gunakan folder tersebut sebagai public directory dari proyek Firebase kita.

Buat berkas .travis.yml dengan isi sebagai berikut

language: node_js
node_js: '7.8.0'

before_install:
- rvm install 2.1
- rvm use 2.1
- . $HOME/.nvm/nvm.sh && nvm install 6.1 && nvm use 6.1
- gem install bundler
- bundle check || bundle install

install:
- npm install -g firebase-tools

before_script:
    - chmod +x ./script/cibuild

script: ./script/cibuild

after_success:
- firebase deploy --token $FIREBASE_TOKEN

branches:
only:
- master

env:
global:
- NOKOGIRI_USE_SYSTEM_LIBRARIES=true

sudo: false

Selanjutnya buat script untuk melakukan build pada Jekyll, beri nama cibuild dan letakkan pada folder script pada repo anda dengan isi

#!/usr/bin/env bash
set -e # halt script on error

bundle exec jekyll build
bundle exec htmlproofer ./_site --disable-external --assume-extension

Jangan lupa menambahkan html-proofer pada berkas Gemfile dengan

gem "html-proofer"

Ujicoba deploy dengan git push seperti biasa. Setelah berhasil dapat dilanjutkan dengan menghubungkan domain sebelumnya ke google firebase.

Sumber : https://jekyllrb.com/docs/continuous-integration/travis-ci/

Update untuk mencoba hasil pindahan ini silahkan kunjungi https://linhub-io.firebaseapp.com/

Berikutnya saya akan memindahkan layanan CF dan Github Pages full ke Firebase.


Pair With Me!
Comments? Contact me via Twitter or e-mail.