浏览代码

Agregado del stash y git reset en caso de error

gabriel 7 年之前
父节点
当前提交
ab1e39eb78
共有 2 个文件被更改,包括 28 次插入22 次删除
  1. 3 2
      tools/src/Command/TagModulesCommand.php
  2. 25 20
      tools/src/ComposerRequireCommand.php

+ 3 - 2
tools/src/Command/TagModulesCommand.php

@@ -60,8 +60,8 @@ class TagModulesCommand extends Command
                     $git->config->add('user.name', 'drone', ["global" => true]);
                     // agrego el path del repositorio
 		    $git->setRepository($git_path);
-		    // guardo cualquier cambio realizado.
-		    //$git->stash();
+		    // guardo cualquier cambio anterior.
+		    $git->stash();
                     // necesito traer todos los branch's para ver si ya existe
                     $branchs = $git->branch(['all' => true]);
                     $findBranch = false;
@@ -101,6 +101,7 @@ class TagModulesCommand extends Command
                     shell_exec($cd_path . "; git push " . $optionRemoteGit . " --tags ");
                 } catch (GitException $e) {
                     $output->writeln("SE PRODUJO UN ERROR EN " . $sec);
+                    shell_exec($cd_path . "; git reset ");
                     $output->writeln($e->getTraceAsString());
                     $output->writeln($sec . ": " . $e->getMessage());
                     return $e->getCode();

+ 25 - 20
tools/src/ComposerRequireCommand.php

@@ -42,29 +42,34 @@ class ComposerRequireCommand extends Command
             if (file_exists($composer_file)) {
                 $output->writeln($sec);
                 $composer_data = json_decode(file_get_contents($composer_file), true);
-                foreach (array("require", "require-dev") as $k) {
-		    if (strlen($pull) > 0) {
-                        shell_exec('cd ' . $sec . '; git checkout master; git pull origin ' . $pull);
-                    }
-                    foreach ($composer_data[$k] as $package => $version) {
-                        if (strpos($packages, "*") !== false) {
-                            $preg = "|^" . str_replace("*", "[^\b]*", $packages) . "$|";
-                            if (preg_match($preg, $package)) {
-                                $composer_data[$k][$package] = (string)$new_version;
-                                $output->writeln("\t" . $package . " = " . $new_version);
-                            }
-                        } else {
-                            if (strcmp($packages, $package) === 0) {
-                                $composer_data[$k][$package] = (string)$new_version;
-                                $output->writeln("\t" . $package . " = " . $new_version);
+		try {
+                    foreach (array("require", "require-dev") as $k) {
+                        if (strlen($pull) > 0) {
+                            shell_exec('cd ' . $sec . '; git stash; git checkout master; git pull origin ' . $pull);
+                        }
+                        foreach ($composer_data[$k] as $package => $version) {
+                            if (strpos($packages, "*") !== false) {
+                                $preg = "|^" . str_replace("*", "[^\b]*", $packages) . "$|";
+                                if (preg_match($preg, $package)) {
+                                    $composer_data[$k][$package] = (string)$new_version;
+                                    $output->writeln("\t" . $package . " = " . $new_version);
+                                }
+                            } else {
+                                if (strcmp($packages, $package) === 0) {
+                                    $composer_data[$k][$package] = (string)$new_version;
+				    $output->writeln("\t" . $package . " = " . $new_version);
+                                }
                             }
                         }
                     }
-                }
-                file_put_contents($composer_file, json_encode($composer_data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES));
-		if ($dockerCompose) {
-                    shell_exec('docker-compose exec ' . $sec . ' bin/composer-update.sh');
-                }
+                    file_put_contents($composer_file, json_encode($composer_data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES));
+		    if ($dockerCompose) {
+                        shell_exec('docker-compose exec ' . $sec . ' bin/composer-update.sh');
+                    }
+		} catch (Throwable $t) {
+		    $output->writeln("Se produjo un error. Reestableciendo datos. ");
+                    $shell_exec(i'cd ' . $sec . '; git reset');
+		}
             } else {
                 $output->writeln($sec . " no composer.json found");
             }