Testing Laravel: Setup CI dengan Travis CI
Bismillahirrahmanirrahim.
Pada artikel sebelumnya kita sudah membahas tentang manfaat layanan Continuous Integration untuk project kita, dan sudah mengetahui beberapa layanan yang gratis. Jika kita memiliki repositori project Laravel open-source yang dihosting di github, setup Continuous Integration yang paling mudah adalah Travis CI.
Secara umum, berikut langkah yang akan kita lakukan :
- Membuat file
.travis.yml
untuk definisi konfigurasi dan script yang dijalankan oleh Travis CI. - Login pada Travis CI dengan akun Github.
- Pilih dan aktifkan repositori yang akan menggunakan layanan Travis CI.
- Buat commit baru untuk men-triger layanan Travis CI untuk pertama kali.
Selanjutnya kita bahas langkah detail setup Travis CI untuk project Laravel di github.
Membuat file “.travis.yml”
File .travis.yml
adalah file yang berisi konfigurasi layanan CI dan script-script build dan test yang akan dijalankan Travis CI. Baik, kita buat file bernama .travis.yml
pada project root, kemudian isikan file tersebut dengan script berikut ini :
language: php
php:
- 7.0
before_script:
- travis_retry composer self-update
- travis_retry composer install --prefer-source --no-interaction
- cp .env.example .env
- php artisan key:generate
script:
- vendor/bin/phpunit
Seperti ini.
Login pada Travis CI dengan akun Github
Kemudian buka website Travis CI, klik “Sign in with GitHub”.
Ikuti langkahnya hingga kita mendapatkan tampilan seperti gambar di bawah ini. Klik tombol “Sync account” untuk menampilkan daftar repository yang ada pada akun github kita.
Aktifkan Repository Project
Klik “switch” disamping nama repository untuk mengaktifkan layanan Travis CI untuk project tersebut. Kemudian klik Nama Repository (dalam kasus saya: nafiesl/Laravel-TDD) untuk masuk ke halaman detail build repository tersebut.
Nah, sampai disini kita sudah selesai mengaktifkan layanan Travis CI untuk project kita. Travis akan “standby” untuk menunggu commit berikutnya agar dapat mulai build untuk pertama kalinya.
Buat commit untuk men-trigger build
Sekarang kita buat commit baru untuk men-trigger build dari Travis CI. Misalnya kita ingin menampilkan build badge seperti ini pada file README.md
. Langkah kerjanya seperti ini:
-
Klik badge build status pada halaman Travis CI project.
-
Pilih branch master
-
Pilih Markdown
-
Copy script badge status build untuk kita paste ke file
README.md
-
Edit (atau buat) file
README.md
pada repo project di github, tambahkan script badge status build dari Travis CI tadi. Misal seperti ini.
# Laravel TDD Project
[![Build Status](https://travis-ci.org/nafiesl/Laravel-TDD.svg?branch=master)](https://travis-ci.org/nafiesl/Laravel-TDD)
## About
Source code laravel testing pada blog https://blog.nafies.id/tags/#testing.
File README.md
langsung dibuat/edit pada github.
Maka seketika itu juga, kita melihat pada list commit dari repo project ini, layanan Travis CI langsung bekerja.
Kita dapat melihat proses kerjanya pada halaman Travis CI project.
Silakan tunggu hingga prosesnya selesai.
Oke, proses build dan testing nya sudah selesai. Jika kita kembali ke list commit repo tersebut, kita akan melihat tanda Centang Hijau
yang menandakan bahwa proses build dan testing oleh travis CI untuk commit tersebut berjalan dengan baik. Seperti gambar di bawah ini.
Selesai Setup
Sampai disini kita sudah berhasil melakukan setup layanan Travis CI untuk project opensource Testing Laravel kita. Sebagaimana kita bahas sebelumnya, Travis CI akan otomatis berjalan setiap kita melakukan commit baru dan pull-request dari contributor.
Travis CI untuk Paket Composer
Oh ya, proses build layanan Travis CI ini tidak hanya untuk sebuah project aplikasi, lho. Layanan ini juga kita bisa gunakan untuk build dan testing paket composer. Misal paket Simple CRUD Generator untuk Laravel. Paket ini dikembangkan untuk mempermudah dan mempercepat workflow TDD dalam membangun sebuah project dengan Laravel (untuk versi 5.3 s/d 5.5), karena selain menggenerate Controller, Model dan View-nya, paket ini juga menggenerate Feature Test dan beberapa Unit Test.
Travis CI dapat digunakan untuk menjalankan test yang digenerate oleh paket tadi. Temen-temen bisa lihat disini kita bisa mendefinisikan perintah php artisan
juga pada file .travis.yml
. Hasilnya:
Karena paket tersebut awalnya dibuat untuk Laravel 5.5, Travis CI juga digunakan untuk menguji paket tersebut di laravel versi sebelumnya dan beberapa versi PHP. Apakah testing yang digenerate oleh paket tersebut tersebut dapat berjalan dengan baik untuk Laravel 5.3 pada php 5.6? Dan juga berjalan pada Laravel 5.4 pada php 7.0? Travis CI sangat membantu untuk kebutuhan ini.
Sample projectnya bisa dilihat pada repo ini (lihat branch laravel5.3 dan branch laravel5.4).
Demikian teman-teman, mudah-mudahan bisa memberi inspirasi tentang cara Setup Travis CI untuk project open-source laravel di github. Terima kasih atas waktunya.