D. Prameswara
D. Prameswara Tukang ketik yang sedang belajar pemrograman #linux #android #vue #node.js

Cara mudah menambahkan file .env atau sejenisnya di GitLab Continuous Integration (GitLab CI/CD)

Cara mudah menambahkan file .env atau sejenisnya di GitLab Continuous Integration (GitLab CI/CD)

Jika anda menggunakan GitLab Continuous Integration (CI/CD) untuk mem-build, test sampai dengan deployment, maka di dalam proses tersebut, mungkin anda  perlu menambahkan file tertentu yang sifatnya rahasia sehingga tidak di track di Git. Contoh file tersebut adalah file .env pada project yang menggunakan Laravel. Lalu bagaimana caranya menambahkan file tertentu (contoh: .env) di antara proses GitLab CI secara otomatis, sedangkan GitLab sendiri sampai tulisan ini saya tulis belum support penambahan file ini ? Solusinya adalah dengan menggunakan Environment Variable dan base64.

Encode isi file dengan base64

Misalkan file yang ingin anda tambahkan adalah file .env. Pertama silahkan buat dan tentukan isi file tersebut, lalu encode dengan menggunakan base64.

cat .env | base64

Contoh I=isi file .env

APP_ENV=development

DB_CONNECTION=postgres
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=zona
DB_USERNAME=postgres
DB_PASSWORD=123456
DB_DIALECT=postgres
DB_POLL_MAX=10
DB_POLL_MIN=0

Hasil encode base64 kurang lebih seperti di bawah ini

QVBQX0VOVj1kZXZlbG9wbWVudA0KDQpEQl9DT05ORUNUSU9OPXBvc3RncmVzDQpEQl9IT1NUPTEy
Ny4wLjAuMQ0KREJfUE9SVD01NDMyDQpEQl9EQVRBQkFTRT16b25hDQpEQl9VU0VSTkFNRT1wb3N0
Z3Jlcw0KREJfUEFTU1dPUkQ9MTIzNDU2DQpEQl9ESUFMRUNUPXBvc3RncmVzDQpEQl9QT0xMX01B
WD0xMA0KREJfUE9MTF9NSU49MA==

Silahkan copy/salin hasil base64 seperti di atas.

Hasil encode base64


Tambahkan Environment Variable di GitLab CI

Selanjutnya, silahkan tambahkan Environment Variable/Secret Variable ke dalam GitLab CI, lalu isi value-nya dengan hasil base64 di atas. Misalkan nama variable tersebut adalah FILE_ENV.

Cara mudah menambahkan file .env atau sejenisnya di GitLab Continuous Integration (GitLab CI/CD)
Menambahkan Environment Variable di GitLab CI

Modifikasi file .gitlab-ci.yml untuk membuat file

Langkah selanjutnya adalah mengubah script file .gitlab-ci.yml agar dapat membuat file, dalam contoh ini adalah file .env, dari environment variable tertentu. Intinya adalah membaca environment variable, dalam contoh ini adalah FILE_ENV, kemudian di-decode dengan base64, lalu hasilnya dimasukkan ke dalam file tertentu.

echo ${nama_key_variable} | base64 -di > nama_file_tujuan

Keterangan :
nama_key_variable  : nama environment variable/key yang anda buat, contoh : FILE_ENV
base64 -di  : mendecode string/file yang sebelumnya di encode dengan base64. Dalam beberapa kasus, anda mungkin tidak meperlukan argumen i, akan tetapi untuk kasus saya, argumen i ini harus ada karena jika tidak maka proses decode akan gagal.
>  : kurang lebih artinya adalah meredirect hasil decode base64 ke dalam file tertentu. Gunakan > jika anda ingin agar file tersebut dibuat baru/override. Atau gunakan  >>  jika anda ingin agar hasil decode ditambahkan ke dalam file yang sudah ada (tidak override)
nama_file_tujuan  : ini adalah nama file yang anda inginkan. Pada contoh di atas adalah file .env

Contoh :

echo ${FILE_ENV} | base64 -di > .env

Berikut ini adalah contoh file .gitlab-ci.yml 


stages:
- deploy

Build and Deploy:
stage: deploy
script:
- echo ${FILE_ENV} | base64 -di > .env
- yarn install
- rsync -avz . fulan@192.168.50.45:/var/www/myprogram/server/
- ssh fulan@192.168.50.45 -C "pm2 restart all"
only:
- master

Di bawah ini adalah contoh hasil running GitLab CI

Cara mudah menambahkan file .env atau sejenisnya di GitLab Continuous Integration (GitLab CI/CD)
GitLab CI


Sekian, selamat mencoba dan semoga yang sedikit ini bermanfaat.


D. Prameswara
D. Prameswara Tukang ketik yang sedang belajar pemrograman #linux #android #vue #node.js
Load comments