mirror of
				https://github.com/hauke68/Magallanes.git
				synced 2025-11-04 00:50:18 +01:00 
			
		
		
		
	Cleanup releases.
This commit is contained in:
		
							parent
							
								
									014d98bc96
								
							
						
					
					
						commit
						f7e2163fed
					
				@ -97,6 +97,41 @@ class GitRebaseTask extends BaseStrategyTaskAbstract implements IsReleaseAware
 | 
				
			|||||||
            $result = $this->runCommandRemote($command) && $result;
 | 
					            $result = $this->runCommandRemote($command) && $result;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // 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;
 | 
				
			||||||
 | 
					                                $result = $result && $this->runCommandRemote($command);
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return $result;
 | 
					        return $result;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user