From 3ffe7904b34ea965b529961b78e1b198a99e18c9 Mon Sep 17 00:00:00 2001 From: tristan Date: Mon, 6 Apr 2026 13:33:36 +0200 Subject: [PATCH] feat : add application, environment, logfile fixtures Co-Authored-By: Claude Sonnet 4.6 --- src/DataFixtures/AppFixtures.php | 83 +++++++++++++++++++++++++++++++- 1 file changed, 82 insertions(+), 1 deletion(-) diff --git a/src/DataFixtures/AppFixtures.php b/src/DataFixtures/AppFixtures.php index 3f5a54c..2495eb9 100644 --- a/src/DataFixtures/AppFixtures.php +++ b/src/DataFixtures/AppFixtures.php @@ -4,6 +4,9 @@ declare(strict_types=1); namespace App\DataFixtures; +use App\Entity\Application; +use App\Entity\Environment; +use App\Entity\LogFile; use App\Entity\User; use Doctrine\Bundle\FixturesBundle\Fixture; use Doctrine\Persistence\ObjectManager; @@ -16,6 +19,14 @@ class AppFixtures extends Fixture ) {} public function load(ObjectManager $manager): void + { + $this->loadUsers($manager); + $this->loadApplications($manager); + + $manager->flush(); + } + + private function loadUsers(ObjectManager $manager): void { $admin = new User(); $admin->setUsername('admin'); @@ -34,7 +45,77 @@ class AppFixtures extends Fixture $userBob->setRoles(['ROLE_USER']); $userBob->setPassword($this->passwordHasher->hashPassword($userBob, 'bob')); $manager->persist($userBob); + } - $manager->flush(); + private function loadApplications(ObjectManager $manager): void + { + $sirh = new Application(); + $sirh->setName('SIRH'); + $sirh->setSlug('sirh'); + $sirh->setRegistryImage('gitea.malio.fr/malio-dev/sirh'); + $sirh->setDescription('Application de gestion des absences'); + $sirh->setGiteaUrl('https://gitea.malio.fr/malio-dev/sirh'); + + $sirhProd = new Environment(); + $sirhProd->setName('production'); + $sirhProd->setContainerName('sirh-app'); + $sirhProd->setDeployScriptPath('/home/m-tristan/workspace/SIRH/deploy/docker/deploy.sh'); + $sirhProd->setMaintenanceFilePath('/home/m-tristan/workspace/SIRH/deploy/docker/maintenance.on'); + $sirhProd->setAppUrl('https://sirh.malio-dev.fr'); + $sirh->addEnvironment($sirhProd); + + $sirhProdLog = new LogFile(); + $sirhProdLog->setLabel('prod'); + $sirhProdLog->setPath('/home/m-tristan/workspace/SIRH/var/log/prod.log'); + $sirhProd->addLogFile($sirhProdLog); + + $sirhCronLog = new LogFile(); + $sirhCronLog->setLabel('cron'); + $sirhCronLog->setPath('/home/m-tristan/workspace/SIRH/var/log/cron.log'); + $sirhProd->addLogFile($sirhCronLog); + + $manager->persist($sirh); + + $lesstime = new Application(); + $lesstime->setName('Lesstime'); + $lesstime->setSlug('lesstime'); + $lesstime->setRegistryImage('gitea.malio.fr/malio-dev/lesstime'); + $lesstime->setDescription('Application de gestion du temps'); + $lesstime->setGiteaUrl('https://gitea.malio.fr/malio-dev/lesstime'); + + $lesstimeProd = new Environment(); + $lesstimeProd->setName('production'); + $lesstimeProd->setContainerName('lesstime-app'); + $lesstimeProd->setDeployScriptPath('/home/m-tristan/workspace/lesstime/deploy/docker/deploy.sh'); + $lesstimeProd->setMaintenanceFilePath('/home/m-tristan/workspace/lesstime/deploy/docker/maintenance.on'); + $lesstimeProd->setAppUrl('https://lesstime.malio-dev.fr'); + $lesstime->addEnvironment($lesstimeProd); + + $manager->persist($lesstime); + + $inventory = new Application(); + $inventory->setName('Inventory'); + $inventory->setSlug('inventory'); + $inventory->setRegistryImage('gitea.malio.fr/malio-dev/inventory'); + $inventory->setDescription('Application de gestion des inventaires'); + $inventory->setGiteaUrl('https://gitea.malio.fr/malio-dev/inventory'); + + $inventoryProd = new Environment(); + $inventoryProd->setName('production'); + $inventoryProd->setContainerName('inventory-app'); + $inventoryProd->setDeployScriptPath('/home/m-tristan/workspace/inventory/deploy/docker/deploy.sh'); + $inventoryProd->setMaintenanceFilePath('/home/m-tristan/workspace/inventory/deploy/docker/maintenance.on'); + $inventoryProd->setAppUrl('https://inventory.malio-dev.fr'); + $inventory->addEnvironment($inventoryProd); + + $inventoryRecette = new Environment(); + $inventoryRecette->setName('recette'); + $inventoryRecette->setContainerName('inventory-test-app'); + $inventoryRecette->setDeployScriptPath('/home/m-tristan/workspace/inventory/deploy/docker/deploy-test.sh'); + $inventoryRecette->setMaintenanceFilePath('/home/m-tristan/workspace/inventory/deploy/docker/maintenance-test.on'); + $inventoryRecette->setAppUrl('https://inventory-test.malio-dev.fr'); + $inventory->addEnvironment($inventoryRecette); + + $manager->persist($inventory); } }