Sekarang Blog ini Menggunakan Travis CI


Update terakhir:

Blog ini di-hosting di Github pada repositori ini: https://github.com/ardianta/ardianta.github.io.

Setiap kali saya ingin deploy, saya harus melakukan push ke sana.

Tapi sekarang sudah tidak lagi, karena sudah dibantu sama Travis CI. yay! 😄

Travis CI ini bertugas untuk melakuakn build dan deploy.

Adapun skrip yang saya gunakan adalah sebagai berikut:

File deploy-ci.sh

#!/bin/bash

set -e

DEPLOY_REPO="https://${DEPLOY_BLOG_TOKEN}@github.com/ardianta/ardianta.github.io.git"

function main {
    clean
    get_current_site
    build_site
    deploy
}

function clean { 
	echo "cleaning public folder"
	if [ -d "public" ]; then rm -rf public; fi 
}

function get_current_site { 
	echo "getting latest site"
	git clone --depth 1 $DEPLOY_REPO public 
}

function build_site { 
	echo "building site..."
	hugo --config config.production.toml
}

function deploy {
	echo "deploying changes"

	if [ -z "$TRAVIS_PULL_REQUEST" ]; then
	    echo "except don't publish site for pull requests"
	    exit 0
	fi  

	if [ "$TRAVIS_BRANCH" != "master" ]; then
	    echo "except we should only publish the master branch. stopping here"
	    exit 0
	fi

	cd public
	git config --global user.name "Travis CI"
    git config --global user.email ardianta_pargo@yahoo.co.id
	git add -A
	git status
	git commit -m "Travis build $TRAVIS_BUILD_NUMBER auto-pushed to github"
	git push $DEPLOY_REPO master:master
}


main

Kita membutuhkan token personal Github untuk mengisi DEPLOY_BLOG_TOKEN agar skrip di atas bisa melakukan push ke repositori.

Token ini bisa kita dapatkan di Akun->Settings->Developer settings->Personal access tokens (https://github.com/settings/tokens).

Token yang sudah dibuat, bisa ditambahkan di pengaturan Travis (https://travis-ci.org/).

Sementara untuk konfigurasi CI Travis-nya:

File: .travis.yml

language: generic
os: linux

sudo: required
dist: trusty
group: deprecated-2017Q4


install:
  - wget -O /tmp/hugo.deb https://github.com/gohugoio/hugo/releases/download/v0.31.1/hugo_0.31.1_Linux-64bit.deb
  - sudo dpkg -i /tmp/hugo.deb
  - rm -rf public || exit 0

script:
  - hugo version
  - chmod +x deploy-ci.sh
  - ./deploy-ci.sh

Dengan begini saya tinggal melakukan push saja ke repositori ini: https://github.com/ardianta/blog lalu Travis CI akan melakukan build dan melakukan push ke sini.

Ini screenshot saat si Travis CI melakukan Build.

Kadang kalau tidak ada yang di-push, build akan gagal. Tapi itu tidak masalah, karena belum ada update terbaru yang harus di-push.

Sekarang bisa sedikit hemat kuota, karena tidak nge-push ke dua repositori sekaligus. 😄

Terima kasih Travis CI.