Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Catatan prosedur untuk build assets sebelum deployment #26

Closed
feryardiant opened this issue Jul 14, 2023 · 1 comment
Closed

Catatan prosedur untuk build assets sebelum deployment #26

feryardiant opened this issue Jul 14, 2023 · 1 comment
Labels
chore A task that needs to be done experience The way users interact with the product integration When multiple functionalities should works together UI The way a product looks
Milestone

Comments

@feryardiant
Copy link
Contributor

Terkait penggunaan inertia.js pada implementasi saat ini kita perlu meng-generate definisi routes terlebih dahulu menggunakan composer ziggy:generate untuk mendapatkan list router terbaru sebelum melakukan pnpm build. Menjadikan ini rawan sekali lupa, terlebih jika dalam proses pengerjaan kita tengah menambahkan beberapa routing, lalu lupa menjalankan ziggy:generate sebelum build maka kita tidak akan mendapatkan versi routing yang terbaru.

Disamping itu melihat output dari ziggy:generate ini akan menghasilkan full URL dari APP_URL, menjadikan kita perlu melakukan generate sesuai dengan environment yang akan dituju. Contoh ketika kita butuh "local build" kita cukup dengan melakukan command berikut :

composer ziggy:generate
pnpm build

Command tersebut akan memanfaatkan APP_URL dari file .env yang mana adalah local url dari setiap contributor. Hal tersebut menjadikan file hasil compile tidak bisa langsung di deploy, karna pasti akan bermasalah dengan URL endpoint yang digunakan oleh front-end.

Solusi saat ini adalah dengan melakukan ziggy:generate dan build sesuai dengan environment yang dibutuhkan. Misal kita perlu melakukan deployment ke server staging, kita harus menyiapkan file .env.staging yang berisi :

APP_ENV=staging
APP_URL=https://skeleton.creasi.dev
APP_DEBUG=false

File .env.staging tersebut bertukan sebagai overwrite untuk beberapa value di .env yang dibutuhkan di server staging. Setelah itu kita beru bisa jalankan command berikut ini :

composer ziggy:generate -- --env staging
pnpm build --mode staging

Dalam proses tersebut baik dari sisi laravel ataupun vite akan secara otomatis merge value dari .env dan .env.staging untuk menghasilkan output yang dibutuhkan oleh server staging.

@feryardiant feryardiant added chore A task that needs to be done integration When multiple functionalities should works together UI The way a product looks experience The way users interact with the product labels Jul 14, 2023
@feryardiant
Copy link
Contributor Author

Adapun environment file yang dibutuhkan untuk testing adalah .env.testing sebagai berikut

APP_ENV=testing
APP_DEBUG=true
APP_URL=https://skeleton.test

DB_CONNECTION=pgsql
DB_DATABASE=creasi_test

BROADCAST_DRIVER=log
CACHE_DRIVER=array
FILESYSTEM_DISK=local
MAIL_MAILER=array
QUEUE_CONNECTION=sync
SESSION_DRIVER=array

DUSK_HEADLESS_DISABLED=true

BROWSERSTACK_USERNAME=
BROWSERSTACK_ACCESS_KEY=
  • APP_URL diperlukan untuk digunakan oleh laravel dusk,
  • DB_DATABASE diperlukan untuk menggunakan database yang berbeda selama eksekusi pengujian, jika tidak proses pengujian akan melakukan reset ke database utama,
  • DUSK_HEADLESS_DISABLED diperlukan agar eksekusi penggujian dijalankan dari foreground
  • BROWSERSTACK_USERNAME dan BROWSERSTACK_ACCESS_KEY diperlukan jika pengujian perlu dijalankan dari browserstack, jika pengujian ingin dilankan di local bisa comment out baris tersebut.

@feryardiant feryardiant added this to the Week 14 2023 milestone Oct 7, 2023
@feryardiant feryardiant pinned this issue Oct 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
chore A task that needs to be done experience The way users interact with the product integration When multiple functionalities should works together UI The way a product looks
Projects
Archived in project
Development

No branches or pull requests

1 participant