Sekarang Blog ini Menggunakan Travis CI
24 Dec 2017 · 2 min read
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.