Auto Deploy Project dengan GitLab CI

Pada devsite dan GitLab environment telah di aktifkan GitLab CI (Continuous Integration) untuk server. Auto Deploy adalah salah satu auto-script yang bisa digunakan dengan GitLab CI tersebut. Auto Deploy memudahkan anda untuk push commit lalu kemudian preview di devsite atau demosite.

Auto Deploy, adalah auto-script yang dijadikan binary file pada server devsite PuriWP ini. Dalam command line bisa dengan menggunakan wpgit <options> dan wpgit-ftp <options>.

Pada project GitLab sendiri, penggunaan Auto Deploy lebih mudah, bisa dengan menggunakan file .gitlab-ci.yml dengan syntax YAML.

  1. Pada root project, pertama buat file bernama .gitlab-ci.yml pada lokal repository anda
  2. File ini digunakan untuk menjelaskan environment apa saja yang akan kita gunakan untuk project tersebut, dan command yang bisa dugunakan untuk setiap environment.
    • stages:, default di GitLab env yang digunakan adalah build atau development, dan env deploy atau production
    • build:, jika stages terdapat option build, maka tag env ini wajib di gunakan
    • deploy:, jika stages terdapat option deploy, maka tag env ini wajib di gunakan
  3. Berikut adalah beberapa option yang digunakan pada tag environment:
    • stage:, untuk menjelaskan relasi nama stage dan environment ini, jika anda menggunakan nama berbeda pada tag stages, misal: prod, lalu pada option ini masukkan juga stage prod
    • only:, secara default runner GitLab akan fetch/pull semua branch yang terdapat pada project, untuk lebih spesifik masukkan nama branch yang akan digunakan pada env ini
    • script:, adalah command line yang akan dijalankan untuk env ini, pada GitLab PuriWP, untuk integrasi ke devsite bisa dengan menggunakan command wpgit <namespace>, dan untuk integrasi ke demo site bisa dengan menggunakan wpgit-ftp <namespace>
    • when:, option ini bersifat optional, jika di kosongkan setiap merge, push, tag akan menjalankan command line yang terdapat pada script tag. Sekalipun terdapat failed, conflict, invalid pada commit. Masukkan option on_success untuk memastikan tidak ada error pada code, lalu environment akan menjalankan script.

    Ada banyak lagi option environment yang bisa digunakan, tetapi hanya ini saja yang sangat di perlukan dalam env GitLab CI.

  4. Setelah file di save, lalu commit, kemudian push ke remote server GitLab. Dan secara otomatis GitLab akan membaca pengaturan integrasi pada file tersebut.
  5. Pastikan environment devsite ataupun demosite sudah di siapkan, selengkapnya:
    Environment Devsite PuriWP
    Environment Demosite PuriWP
  6. Dan juga pastikan GitLab CI aktif pada project yang akan menggunakan Auto Deploy ini, selengkapnya:
    GitLab Services Untuk Theme Project

Contoh kasus:

  • Project namespace “tester” mempunya 2 env, yaitu : build dan deploy
  • Env build, digunakan untuk auto deploy ke devsite puriwp
  • Env deploy, untuk auto deploy ke Demo site puriwp
  • Untuk auto deploy ke devsite hanya akan menggunakan branch dev, hanya setiap terdapat perubahan atau commit baru pada branch dev yang akan di upload ke devsite
  • Dan auto deploy ke demo hanya akan menggunakan branch master, hanya setiap perubahan atau commit pada branch master saja yang akan di upload ke demo
  • dan untuk env deploy akan dipastikan tidak ada commit yang failed atau conflict

Berikut adalah isi file .gitlab-ci.yml yang akan digunakan:

stages:
  - build
  - deploy
build:
  stage: build
  only:
    - dev
  script: "wpgit tester"
deploy:
  stage: deploy
  only:
    - master
  script: "wpgit-ftp tester"
  when: on_success

Download Contoh File

Jika Auto Deploy sudah diaktifkan pada project, bisa di lihat pada menu Commits.

gitlab-cmmit-lists

  • Tanda checklist hijau, berarti commit telah berhasil di upload ke environment
  • Tanda silang merah, berarti commit gagal di upload ke environment
  • Tanda bulat ungu, berarti commit di lewati untuk dimasukkan ke environemnt

gitlab-commit-build-success
Commit telah berhasil di upload ke environment

gitlab-commit-build-failed
Commit gagal di upload ke environment

Pada menu project terdapat menu Builds untuk melihat detail Auto Deploy yang dikerjakan.
gitlab-builds

  • Status, adalah status untuk auto deploy yang dikerjakan oleh runner
  • Commit, adalah referensi commit yang dikerjakan dan di upload
  • Ref, adalah nama branch yang di gunakan oleh build script
  • Name, adalah nama environment yang dikerjakan oleh runner

Leave a Reply

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