Setup Continuous Delivery
Pada artikel sebelumnya, kita telah melakukan deployment ke cloud provider Openshift dan Heroku dari komputer lokal kita. Sekarang, kita akan mengotomasi proses deployment ini dengan Travis, sehingga apabila build berjalan sukses, aplikasi akan otomatis dideploy ke server dan bisa diakses seluruh umat manusia.
Instalasi Travis Tools
Travis sudah menyediakan tools command line untuk memudahkan proses konfigurasi. Tools ini dibuat berbasis Ruby, sehingga kita harus pastikan dulu ada Ruby yang terinstal. Jalankan perintah berikut untuk memastikan
ruby -v
Berikut outputnya di komputer saya
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15]
Selanjutnya, kita install Travis tools.
gem install travis
Fetching: websocket-1.2.2.gem (100%)
Successfully installed websocket-1.2.2
Fetching: pusher-client-0.6.2.gem (100%)
Successfully installed pusher-client-0.6.2
Fetching: launchy-2.4.3.gem (100%)
Successfully installed launchy-2.4.3
Fetching: highline-1.7.8.gem (100%)
Successfully installed highline-1.7.8
Fetching: net-http-pipeline-1.0.1.gem (100%)
Successfully installed net-http-pipeline-1.0.1
Fetching: net-http-persistent-2.9.4.gem (100%)
Successfully installed net-http-persistent-2.9.4
Fetching: backports-3.6.8.gem (100%)
Successfully installed backports-3.6.8
Fetching: gh-0.14.0.gem (100%)
Successfully installed gh-0.14.0
Fetching: faraday_middleware-0.10.0.gem (100%)
Successfully installed faraday_middleware-0.10.0
Fetching: travis-1.8.2.gem (100%)
Successfully installed travis-1.8.2
Parsing documentation for websocket-1.2.2
Installing ri documentation for websocket-1.2.2
Parsing documentation for pusher-client-0.6.2
Installing ri documentation for pusher-client-0.6.2
Parsing documentation for launchy-2.4.3
Installing ri documentation for launchy-2.4.3
Parsing documentation for highline-1.7.8
Installing ri documentation for highline-1.7.8
Parsing documentation for net-http-pipeline-1.0.1
Installing ri documentation for net-http-pipeline-1.0.1
Parsing documentation for net-http-persistent-2.9.4
Installing ri documentation for net-http-persistent-2.9.4
Parsing documentation for backports-3.6.8
Installing ri documentation for backports-3.6.8
Parsing documentation for gh-0.14.0
Installing ri documentation for gh-0.14.0
Parsing documentation for faraday_middleware-0.10.0
Installing ri documentation for faraday_middleware-0.10.0
Parsing documentation for travis-1.8.2
Installing ri documentation for travis-1.8.2
Done installing documentation for websocket, pusher-client, launchy, highline, net-http-pipeline, net-http-persistent, backports, gh, faraday_middleware, travis after 9 seconds
10 gems installed
Setup Deployment Travis ke Openshift
Dengan tools command line travis
, setup deployment sangat mudah sekali. Cukup jalankan perintah
travis setup openshift
Selanjutnya kita akan dipandu untuk mengisi informasi yang dibutuhkan.
Shell completion not installed. Would you like to install it now? |y|
Detected repository as endymuhardin/belajar-ci, is this correct? |yes|
OpenShift user: endy.muhardin@gmail.com
OpenShift password: ****************
OpenShift application name: |belajar-ci| belajar
OpenShift domain: endymuhardin
Deploy only from endymuhardin/belajar-ci? |yes|
Encrypt Password? |yes|
Setelah semua kita isi, file .travis.yml
akan diupdate sesuai dengan konfigurasi kita. Password Openshift kita akan dienkripsi sehingga tidak terbaca oleh orang lain.
deploy:
provider: openshift
user: endy.muhardin@gmail.com
password:
secure: yadda-yadda-yadda
app: belajar
domain: endymuhardin
on:
repo: endymuhardin/belajar-ci
Berikutnya, kita bisa commit dan push ke Github seperti biasa. Travis akan mendeteksinya, melakukan build, dan kemudian mendeploynya ke Openshift.
Setup Deployment Travis ke Heroku
Tidak jauh berbeda dengan Openshift, setup Heroku juga dilakukan melalui tools command line travis
. Jalankan perintah berikut
travis setup heroku
Dan kita akan ditanyai beberapa informasi yang dibutuhkan
Heroku application name: |belajar-ci| aplikasibelajar
Deploy only from endymuhardin/belajar-ci? |yes|
Encrypt API key? |yes|
Setelah selesai, file .travis.yml
kita akan diupdate. Berikut tambahannya
deploy:
provider: heroku
api_key:
secure: yadda-yadda-yadda
app: aplikasibelajar
on:
repo: endymuhardin/belajar-ci
Kita tinggal commit dan push, Travis akan mendeploy aplikasi kita ke Heroku.
Penutup
Demikianlah rangkaian setup project baru yang fully automated. Dengan setup ini, begitu seorang programmer melakukan push, maka pabrik software akan segera bekerja, melakukan:
- Download source code terbaru
- Melakukan kompilasi
- Menjalankan semua test
- Memeriksa apakah test coverage memadai
- Mendeploy aplikasi ke server
Semua kegiatan di atas dilakukan tanpa campur tangan manusia.
Tentunya setup di atas hanya gratis bagi project open source. Untuk project yang closed-source, setupnya akan lebih rumit dan belum tentu gratis. Kita juga bisa menggunakan Travis dan Coveralls, tapi dengan membayar iuran setiap bulannya, ditambah dengan iuran Github juga.
Semoga bermanfaat :D