- A célkörnyezet alapértelmezése a d2d (azt frissítjük sűrűbben). A config targets tömbjének sorrendje adja az alapértelmezést, ezért csak a sorrend cserélődött. - A "Környezetek állapota" panel betöltéskor magától lekérdezi a deploy-version.json-t, percenkénti cache-sel (a hibás választ is cache-eljük, hogy egy nem válaszoló környezet ne lassítsa minden kattintásnál a felületet). A Frissítés gomb kényszerít. - A panel tömörebb, és valóban két hasábos: a md:grid-cols-2 nincs benne a lefordított CSS-ben, ezért saját, media query-s stílussal oldjuk meg - így build nélkül is működik. - A commitlistában a hash mellett jelöljük, melyik környezet áll azon a commiton: zöld a szervertől lekérdezett, szürke a napló szerinti állapot. Teszt: a beforeEach Http::fake() catch-all stubja minden URL-re illeszkedik és a factory az első találatot adja vissza, ezért a konkrét választ váró teszt új factory-t kap. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
134 lines
4.2 KiB
PHP
134 lines
4.2 KiB
PHP
<?php
|
|
|
|
return [
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Fő kapcsoló (1. védelmi réteg)
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| A deployment csomagoló KIZÁRÓLAG fejlesztői gépen futhat. Mivel az
|
|
| alkalmazás kódja manuális fájlmásolással kerül a szerverekre, ez az
|
|
| oldal fizikailag ott lesz minden környezeten - ezért a bekapcsolás
|
|
| .env-ből történik, ami viszont nincs verziókövetve és nem másoljuk.
|
|
|
|
|
*/
|
|
|
|
'enabled' => env('DEPLOYMENT_PACKAGE_ENABLED', false),
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Stage whitelist (2. védelmi réteg)
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Szándékosan hardkódolt lista, nem env-ből jön: ez fogja meg azt az esetet,
|
|
| ha valaki a fenti kapcsolót tévedésből bemásolja egy szerver .env-jébe.
|
|
|
|
|
*/
|
|
|
|
'stages' => ['local'],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Jogosultság (3. réteg) és láthatóság (4. réteg)
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| A feature flag NEM biztonsági réteg - a védelmet a fenti kettő és a
|
|
| szerepkör adja. A flag a menü-láthatóságot vezérli, illetve deploy nélküli
|
|
| kikapcsolást és név szerinti átadást tesz lehetővé (feature_flag_overrides).
|
|
|
|
|
*/
|
|
|
|
'role' => 'developer',
|
|
|
|
'feature_flag' => 'DeploymentPackage',
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Git
|
|
|--------------------------------------------------------------------------
|
|
*/
|
|
|
|
'repo_path' => base_path(),
|
|
|
|
'git_binary' => env('DEPLOYMENT_GIT_BINARY', 'git'),
|
|
|
|
'timeout' => 60,
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Csomagolás
|
|
|--------------------------------------------------------------------------
|
|
*/
|
|
|
|
'output_path' => env('DEPLOYMENT_OUTPUT_PATH', storage_path('app/private/deployments')),
|
|
|
|
'max_files' => 500,
|
|
|
|
'commit_limits' => [50, 100, 200],
|
|
|
|
/*
|
|
| Ezek soha nem kerülnek csomagba, akkor sem, ha a diffben szerepelnének.
|
|
| A minták Str::is() szintaxisúak, a repo gyökeréhez képest relatív úton.
|
|
*/
|
|
'exclude' => [
|
|
'.env',
|
|
'.env.*',
|
|
'auth.json',
|
|
'.git*',
|
|
'storage/*',
|
|
'vendor/*',
|
|
'node_modules/*',
|
|
],
|
|
|
|
/*
|
|
| Fájlok, amik csomagolhatók, de külön figyelmeztetést érdemelnek, mert
|
|
| önmagukban nem elegendők (kell melléjük egy parancs a célgépen).
|
|
*/
|
|
'attention' => [
|
|
'migration' => ['database/migrations/*'],
|
|
'seeder' => ['database/seeders/*'],
|
|
'composer' => ['composer.json', 'composer.lock'],
|
|
'asset' => [
|
|
'resources/js/*',
|
|
'resources/css/*',
|
|
'resources/modern/*',
|
|
'vite.config.js',
|
|
'webpack.mix.js',
|
|
'package.json',
|
|
'package-lock.json',
|
|
],
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Célkörnyezetek
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Az expected_branch csak figyelmeztetést vezérel, nem tiltást.
|
|
| A remote_path a shared storage útvonala (ld. docs/cicd-context.md).
|
|
|
|
|
*/
|
|
|
|
/*
|
|
| A sorrend számít: az első az alapértelmezett célkörnyezet a felületen
|
|
| (DeploymentTargets::defaultKey()). A d2d azért van elöl, mert azt frissítjük
|
|
| sűrűbben, tehát a gyakoribb eset legyen az alapértelmezés.
|
|
*/
|
|
'targets' => [
|
|
'd2d' => [
|
|
'label' => 'd2d — fejlesztői',
|
|
'domain' => 'd2d.emegrendeles.hu',
|
|
'remote_path' => '/delirest/d2d.emegrendeles.hu/app/',
|
|
'expected_branch' => 'test',
|
|
],
|
|
'e2e' => [
|
|
'label' => 'e2e — t2t éles',
|
|
'domain' => 'e2e.emegrendeles.hu',
|
|
'remote_path' => '/delirest/test.t2t.emegrendeles.hu/app/',
|
|
'expected_branch' => 'main',
|
|
],
|
|
],
|
|
|
|
];
|