Két commit közötti fájlok összegyűjtését előkészítő felület első fázisa: célkörnyezet választás (e2e/d2d), commitlista, diff-előnézet figyelmeztetésekkel. Ez a fázis még semmit nem ír a fájlrendszerre, a csomagolás a phase2-ben érkezik. - DeploymentGuard: .env kapcsoló + hardkódolt stage whitelist + developer szerep + feature flag; a flag szándékosan nem biztonsági réteg, csak láthatóság-vezérlés - GitRepository: csak olvasó wrapper, argumentum-tömbös Symfony Process (nincs shell), hash- és referencia-validáció, core.quotePath=false az ékezetes útvonalakhoz - ChangeSetAnalyzer: kizárási lista, törlendő/másolandó szétválasztás (átnevezésnél mindkettő), figyelmeztetések migrációra, composer.lock-ra és a nem verziókövetett fordított assetekre Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
128 lines
3.9 KiB
PHP
128 lines
3.9 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/*'],
|
|
'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).
|
|
|
|
|
*/
|
|
|
|
'targets' => [
|
|
'e2e' => [
|
|
'label' => 'e2e — t2t éles',
|
|
'domain' => 'e2e.emegrendeles.hu',
|
|
'remote_path' => '/delirest/test.t2t.emegrendeles.hu/app/',
|
|
'expected_branch' => 'main',
|
|
],
|
|
'd2d' => [
|
|
'label' => 'd2d — fejlesztői',
|
|
'domain' => 'd2d.emegrendeles.hu',
|
|
'remote_path' => '/delirest/d2d.emegrendeles.hu/app/',
|
|
'expected_branch' => 'test',
|
|
],
|
|
],
|
|
|
|
];
|