Sfoglia il codice sorgente

Agregado para versionar los modulos

gabriel 7 anni fa
parent
commit
fce1e97d07
4 ha cambiato i file con 56 aggiunte e 3 eliminazioni
  1. 6 0
      README.md
  2. 21 0
      tools/modules.ini
  3. 22 1
      tools/readme.md
  4. 7 2
      tools/src/ComposerRequireCommand.php

+ 6 - 0
README.md

@@ -8,3 +8,9 @@ En general nuevas instalaciones deben ser creadas en el directorio /opt/flowdat
 #Archivo tools/repositories.ini
 Contiene todos los repositorios vendors que se versionan y taguean con el installer.
 Cada vez que se genere un repositorio vendor nuevo, se debe agregar la dirección del repositorio de bitbucket a este archivo.
+
+#Archivo tools/modules.ini
+Contiene todos los repositorios que son módulos que se versionan y taguean con el installer.
+Cada vez que se genere un módulo nuevo se debe agregar la dirección del repositorio de bitbucket a este archivo.
+
+

+ 21 - 0
tools/modules.ini

@@ -0,0 +1,21 @@
+[base]
+repo = "ssh://git@bitbucket.org:ikflowdat/base.git"
+
+[cablemodem]
+repo = "ssh://git@bitbucket.org:ikflowdat/cablemodem.git"
+
+[dhcp]
+repo = "ssh://git@bitbucket.org:ikflowdat/dhcp.git"
+
+[ftth]
+repo = "ssh://git@bitbucket.org:ikflowdat/ftth.git"
+
+[mapas]
+repo = "ssh://git@bitbucket.org:ikflowdat/mapas.git"
+
+[radius]
+repo = "ssh://git@bitbucket.org:ikflowdat/radius.git"
+
+[stats]
+repo = "ssh://git@bitbucket.org:ikflowdat/stats.git"
+

+ 22 - 1
tools/readme.md

@@ -164,4 +164,25 @@
         exit
     Ejecuto nuevamente el playbook (ansible)
 
-    
+   
+#Nombres de branch y tag
+    Los branchs y tags se denominaran con vX.Y.Z, siendo la primer letra una "v" para denotar que es una versión, luego X/Y/Z son los números que la identifican.
+    Los branchs solo tendrán las posiciones "X" e "Y".
+    Los tags tendrán las posiciones "X", "Y" y "Z".
+
+#Branch y tag de vendors
+    Estos pasos se deben hacer por separado, es decir, primero se debe hacer un branch y luego el tag.
+    Primero debemos estar situados en el directorio /opt/flowdat/tools.
+    Para realizar un branch debemos ejecucar la siguiente sentencia
+        php cmd.php make:tag:vendors repositories.ini vX.Y --branch=true
+    Para realizar un tag debemos ejecucar la siguiente sentencia
+        php cmd.php make:tag:vendors repositories.ini vX.Y.Z --branch=true
+
+#Branch y tag de módulos
+    Primero debemos estar situados en el directorio /opt/flowdat/tools.
+    Ahora debemos modificar los archivos "composer.json" de cada módulo y ajustarlo a la versión deseada. Este proceso ejecuta el composer update, por lo tanto se debe tener en cuenta que se debe ejecutar en alguna máquina que posea los dockers de los módulos creados.
+    Para esto debemos ejecutar la siguiente sentencia
+        php cmd.php composer:require modules.ini ik/* vX.Y.Z
+    Una vez finalizado la generación de los composer json/lock, debemos hacer un commit de los cambios y para esto ejecutamos la sentencia
+        php cmd.php make:tag:vendors modules.ini vX.Y.Z
+        

+ 7 - 2
tools/src/ComposerRequireCommand.php

@@ -17,12 +17,14 @@ class ComposerRequireCommand extends Command
             ->setDescription('Tag all composer software using a ini file.')
             ->setHelp('This command allows you to tag and change the required code on the composer.json file...')
             ->addArgument('ini_file', InputArgument::REQUIRED, 'The ini file from where to get the source code config.')
-            ->addArgument('packages', InputArgument::REQUIRED, 'tag the required packages (suggested value : ik/*)')
-            ->addArgument('version', InputArgument::REQUIRED, 'use the version expression.');
+            ->addArgument('packages', InputArgument::REQUIRED, 'Tag the required packages (suggested value : ik/*).')
+	    ->addArgument('version', InputArgument::REQUIRED, 'Use the version expression.')
+	    ->addOption('composer_update', null, InputOption::VALUE_OPTIONAL, 'If true, run "docker-compose run ... bin/composer-update.sh" to generate composer.lock', 'true');
     }
 
     protected function execute(InputInterface $input, OutputInterface $output)
     {
+        $dockerCompose = $input->getOption("composer_update");
         $file = $input->getArgument("ini_file");
         $packages = $input->getArgument("packages");
         $new_version = $input->getArgument("version");
@@ -55,6 +57,9 @@ class ComposerRequireCommand extends Command
                     }
                 }
                 file_put_contents($composer_file, json_encode($composer_data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES));
+		if ($dockerCompose) {
+                    shell_exec('docker-compose run ' . $sec . ' bin/composer-update.sh');
+                }
             } else {
                 $output->writeln($sec . " no composer.json found");
             }