Intro
Continuous integration / ​ continuous delivery (CI/CD) merupakan salah satu ​ workflow yang sering diaplikasikan dalam ​ software engineering​ . Kedua aspek ini menjembatani kesenjangan yang terjadi pada siklus ​ development dengan menekankan otomatisasi pada proses ​ building​ , ​ testing​ , dan​ ​ deployment​ dan sebuah aplikasi.

Skenario
Pada skenario kali ini, kita diminta untuk mengaplikasikan ​ CI/CD pada platform ​ Gitlab dan ​ Heroku ​ dengan ​ Laravel sebagai base framework yang digunakan. Seperti biasa, kita diberikan sebuah repository yang memuat kode dari aplikasi yang nantinya akan kita deploy​ . Adapun berikut langkah-langkahnya:

  1. Buka website gitlab.com, kemudian login. Atau jika belum memiliki akun gitlab, daftar terlebih dahulu.
  2. Lalu kemudian buat project, dan beri nama dari project tersebut.

  1. Jika sudah, masuk ke server centos, dan login sebagai root
  2. Kemudian buat satu buat direktori baru dengan cara mkdir oprek-cicd
  3. Masuk ke dalam folder tersebut, kemudian download tugas yang diberikan dengan cara wget https://nos.wjv-1.neo.id/s3-ridho/laravel5.zip
  4. Jika sudah, extract semua file nya, dan copy kan ke dalam direktori oprek-cicd 
  5. Lalu, kita set akun untuk gitlab dengan cara  mengetikkan git config –global user.name “Ridho Hafidz” kemudian git config –global user.email “[email protected]
  1. Sampai sini, repository kita sudah berhasil terintegrasi dengan gitlab.
  1. Coba untuk push terlebih dahulu dengan git add . (untuk menambah semua file di dalam repository), kemudian git commit -m “commit message” lalu kemudian git push -u origin main untuk push ke gitlab, masukan username dan password yang sudah didaftarkan di gitlab
  1. Maka repository kita otomatis sudah berada di gitlab project yang sudah dibuat, kurang lebih seperti ini 
  1. Langkah berikutnya yaitu melakukan installasi composer pada centos, lakukan dengan cara mengetikkan curl -sS https://getcomposer.org/installer | php untuk mendownload file composernya. Kemudian pindahkan file composer.phar dengan cara mv composer.phar /usr/local/bin/composer, lalu buat file composer tersebut menjadi executable dengan cara chmod +x /usr/local/bin/composer
  1. Lalu cek apakah composer sudah dapat dieksekusi langsung atau tidak dengan mengetikan perintah composer pada terminal
  1. Jika sudah, langkah berikutnya yaitu membuat akun di heroku.
  2. Buat akun di website heroku.com. Jika sudah, kemudian klik tombol New. Lalu pilih Create App.
  3. Kemudian, isikan nama aplikasinya. Jika sudah klik tombol create app. Catat nama aplikasi yang dibuat, karena nantikan akan digunakan untuk variabel continous deployment dari gitlab ke heroku
  4. Kemudian, kita buat database external, pada menu dashboard, pilih Reources, kemudian di bagian Add-ons, pilih database yang ingin digunakan
  1. Jika sudah, klik pada tanda panah di sebelah database, nanti akan diarahkan ke halaman dashboard dari database tersebut.
  2. Lalu masuk ke menu Settings, terdapat credentials yang nantinya akan digunakan untuk env pada menu Reveal Config Vars.
  3. Jika sudah, masuk ke dalam menu settings di dalam aplikasi tersebut, kemudian pada bagian Config Vars klik Reveal Config Vars, lalu isikan sesuai dengan credentials yang ada pada database external yang sudah dibuat, kecuali untuk APP_KEY, isikan sesuai dengan value yang ada di .env pada repository 
  1. Jika sudah, kemudian pada Menu profile pilih Account Settings, lalu pada bagian API Key klik Reveal untuk melihat plain text dari API Key yang kita miliki, catat value dari API Key tersebut. API Key ini nantinya akan digunakan untuk proses continous deployment dari gitlab ke heroku
  1. Lalu masuk ke dashboard gitlab, kemudian masuk ke menu Settings – CI/CD – lalu ke bagian Variabels pilih Expand. Pada bagian ini, isikan nama variabel dari API KEY dan API APP yang ada di heroku. Maka hasil tampilannya kurang lebih seperti ini
  1. Jika sudah, di local coba eksekusi vendor/bin/phpunit tests. Jika terdapat error permission denied maka delete folder vendor, dan jalankan composer install
  1. Kemudian jalankan kembali perintah vendor/bin/phpunit tests. Jika terdapat error Failed asserting that false is true, maka buka file tests/Feature/ExampleTest.php, lalu pada bagian response->assertStatus ubah dari 200 menjadi 302.
  1. Jalankan kembali perintah vendor/bin/phpunit tests, maka hasilnya akan seperti ini
  1. Jika sudah sukses testing di local, kemudian buat file .gitlab-ci.yml dengan mengetikkan vi .gitlab-ci.yml lalu isi seperti dibawah ini
  1. Buka kembali dashboard gitlab kemudian akses menu CI/CD Jobs, lihat jobs yang sudah dilakukan apakah sudah berhasil atau ada yang masih failed.
  1. Jika sudah proses build dan deployment sudah berhasil, selanjutnya masuk ke dashboard heroku, dan klik Open App untuk melihat hasil dari deployment aplikasi tersebut.
  1. Tampilan jika sudah berhasil
  1. Kemudian, coba untuk melakukan CRUD 

Selamat mencoba 😀

By admin

Leave a Reply

Your email address will not be published. Required fields are marked *