mirror of
				https://github.com/hauke68/Magallanes.git
				synced 2025-11-04 09:00:18 +01:00 
			
		
		
		
	
							parent
							
								
									1bcaca36f0
								
							
						
					
					
						commit
						825fc64b0a
					
				@ -90,6 +90,10 @@ class ReleaseTask extends AbstractTask implements IsReleaseAware, SkipOnOverride
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            $result = $this->runCommandRemote($command);
 | 
					            $result = $this->runCommandRemote($command);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if ($result) {
 | 
				
			||||||
 | 
					                $this->cleanUpReleases();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return $result;
 | 
					            return $result;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
@ -97,4 +101,44 @@ class ReleaseTask extends AbstractTask implements IsReleaseAware, SkipOnOverride
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Removes old releases
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    protected function cleanUpReleases()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        // Count Releases
 | 
				
			||||||
 | 
					        if ($this->getConfig()->release('enabled', false) == true) {
 | 
				
			||||||
 | 
					            $releasesDirectory = $this->getConfig()->release('directory', 'releases');
 | 
				
			||||||
 | 
					            $symlink = $this->getConfig()->release('symlink', 'current');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (substr($symlink, 0, 1) == '/') {
 | 
				
			||||||
 | 
					                $releasesDirectory = rtrim($this->getConfig()->deployment('to'), '/') . '/' . $releasesDirectory;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            $maxReleases = $this->getConfig()->release('max', false);
 | 
				
			||||||
 | 
					            if (($maxReleases !== false) && ($maxReleases > 0)) {
 | 
				
			||||||
 | 
					                $releasesList = '';
 | 
				
			||||||
 | 
					                $countReleasesFetch = $this->runCommandRemote('ls -1 ' . $releasesDirectory, $releasesList);
 | 
				
			||||||
 | 
					                $releasesList = trim($releasesList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if ($countReleasesFetch && $releasesList != '') {
 | 
				
			||||||
 | 
					                    $releasesList = explode(PHP_EOL, $releasesList);
 | 
				
			||||||
 | 
					                    if (count($releasesList) > $maxReleases) {
 | 
				
			||||||
 | 
					                        $releasesToDelete = array_diff($releasesList, array($this->getConfig()->getReleaseId()));
 | 
				
			||||||
 | 
					                        sort($releasesToDelete);
 | 
				
			||||||
 | 
					                        $releasesToDeleteCount = count($releasesToDelete) - $maxReleases;
 | 
				
			||||||
 | 
					                        $releasesToDelete = array_slice($releasesToDelete, 0, $releasesToDeleteCount + 1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        foreach ($releasesToDelete as $releaseIdToDelete) {
 | 
				
			||||||
 | 
					                            $directoryToDelete = $releasesDirectory . '/' . $releaseIdToDelete;
 | 
				
			||||||
 | 
					                            if ($directoryToDelete != '/') {
 | 
				
			||||||
 | 
					                                $command = 'rm -rf ' . $directoryToDelete;
 | 
				
			||||||
 | 
					                                $this->runCommandRemote($command);
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -62,45 +62,4 @@ abstract class BaseStrategyTaskAbstract extends AbstractTask implements IsReleas
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        return array_merge($excludes, $userExcludes);
 | 
					        return array_merge($excludes, $userExcludes);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * Removes old releases
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    protected function cleanUpReleases()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        // Count Releases
 | 
					 | 
				
			||||||
        if ($this->getConfig()->release('enabled', false) == true) {
 | 
					 | 
				
			||||||
            $releasesDirectory = $this->getConfig()->release('directory', 'releases');
 | 
					 | 
				
			||||||
            $symlink = $this->getConfig()->release('symlink', 'current');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if (substr($symlink, 0, 1) == '/') {
 | 
					 | 
				
			||||||
                $releasesDirectory = rtrim($this->getConfig()->deployment('to'), '/') . '/' . $releasesDirectory;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            $maxReleases = $this->getConfig()->release('max', false);
 | 
					 | 
				
			||||||
            if (($maxReleases !== false) && ($maxReleases > 0)) {
 | 
					 | 
				
			||||||
                $releasesList = '';
 | 
					 | 
				
			||||||
                $countReleasesFetch = $this->runCommandRemote('ls -1 ' . $releasesDirectory, $releasesList);
 | 
					 | 
				
			||||||
                $releasesList = trim($releasesList);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                if ($countReleasesFetch && $releasesList != '') {
 | 
					 | 
				
			||||||
                    $releasesList = explode(PHP_EOL, $releasesList);
 | 
					 | 
				
			||||||
                    if (count($releasesList) > $maxReleases) {
 | 
					 | 
				
			||||||
                        $releasesToDelete = array_diff($releasesList, array($this->getConfig()->getReleaseId()));
 | 
					 | 
				
			||||||
                        sort($releasesToDelete);
 | 
					 | 
				
			||||||
                        $releasesToDeleteCount = count($releasesToDelete) - $maxReleases;
 | 
					 | 
				
			||||||
                        $releasesToDelete = array_slice($releasesToDelete, 0, $releasesToDeleteCount + 1);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                        foreach ($releasesToDelete as $releaseIdToDelete) {
 | 
					 | 
				
			||||||
                            $directoryToDelete = $releasesDirectory . '/' . $releaseIdToDelete;
 | 
					 | 
				
			||||||
                            if ($directoryToDelete != '/') {
 | 
					 | 
				
			||||||
                                $command = 'rm -rf ' . $directoryToDelete;
 | 
					 | 
				
			||||||
                                $this->runCommandRemote($command);
 | 
					 | 
				
			||||||
                            }
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -97,8 +97,6 @@ class GitRebaseTask extends BaseStrategyTaskAbstract implements IsReleaseAware
 | 
				
			|||||||
            $result = $this->runCommandRemote($command) && $result;
 | 
					            $result = $this->runCommandRemote($command) && $result;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $this->cleanUpReleases();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        return $result;
 | 
					        return $result;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -99,8 +99,6 @@ class RsyncTask extends BaseStrategyTaskAbstract implements IsReleaseAware
 | 
				
			|||||||
                 . $this->getConfig()->deployment('user') . '@' . $this->getConfig()->getHostName() . ':' . $deployToDirectory;
 | 
					                 . $this->getConfig()->deployment('user') . '@' . $this->getConfig()->getHostName() . ':' . $deployToDirectory;
 | 
				
			||||||
        $result = $this->runCommandLocal($command);
 | 
					        $result = $this->runCommandLocal($command);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $this->cleanUpReleases();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        return $result;
 | 
					        return $result;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -111,8 +111,6 @@ class TarGzTask extends BaseStrategyTaskAbstract implements IsReleaseAware
 | 
				
			|||||||
        $command = 'rm ' . $localTarGz . ' ' . $localTarGz . '.tar.gz';
 | 
					        $command = 'rm ' . $localTarGz . ' ' . $localTarGz . '.tar.gz';
 | 
				
			||||||
        $result = $this->runCommandLocal($command) && $result;
 | 
					        $result = $this->runCommandLocal($command) && $result;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $this->cleanUpReleases();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        return $result;
 | 
					        return $result;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user