Skip to content
This repository has been archived by the owner on Dec 28, 2021. It is now read-only.

Commit

Permalink
Browse files Browse the repository at this point in the history
… into 5.1
  • Loading branch information
RamonSmit committed Jul 19, 2017
2 parents acc4019 + 667f5a7 commit 2bd0548
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 43 deletions.
82 changes: 41 additions & 41 deletions src/Helpers/Deployer.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ public static function freshInit(Connection $connection, $stage)
{
// Init fresh remote repo
$connection->define('init', [
'cd ' . config('laravel-deploy-helper.stages.' . $stage . '.remote.root'),
'cd '.config('laravel-deploy-helper.stages.'.$stage.'.remote.root'),
'mkdir releases',
'mkdir patches',
'mkdir shared',
Expand All @@ -36,11 +36,11 @@ public static function doDeploy($stage, $branch, $ldh)
{
// Some stuff that does not change in runtime
$releaseName = time();
$home = config('laravel-deploy-helper.stages.' . $stage . '.remote.root');
$shared = config('laravel-deploy-helper.stages.' . $stage . '.shared');
$commands = config('laravel-deploy-helper.stages.' . $stage . '.commands');
$versions = config('laravel-deploy-helper.stages.' . $stage . '.config.dependencies');
$keep = config('laravel-deploy-helper.stages.' . $stage . '.config.keep');
$home = config('laravel-deploy-helper.stages.'.$stage.'.remote.root');
$shared = config('laravel-deploy-helper.stages.'.$stage.'.shared');
$commands = config('laravel-deploy-helper.stages.'.$stage.'.commands');
$versions = config('laravel-deploy-helper.stages.'.$stage.'.config.dependencies');
$keep = config('laravel-deploy-helper.stages.'.$stage.'.config.keep');

// Check what releases are old and can be removed
// Adding the array fixed #1
Expand All @@ -56,74 +56,74 @@ public static function doDeploy($stage, $branch, $ldh)

// Check versions
// Operators: http://php.net/manual/en/function.version-compare.php
verbose('[' . $stage . '] Checking dependencies. Might take a minute.');
verbose('['.$stage.'] Checking dependencies. Might take a minute.');
foreach ($versions as $app => $version) {
// if (SSH::checkAppVersion($connection, $app, $version) == '-1') {
// if (SSH::checkAppVersion($connection, $app, $version) == '-1') {
// Locker::unlock($connection, $stage);
// throw new \Exception('Version of ' . $app . ' does not match your requirements');
// }
SSH::checkAppVersion($connection, $app, $version);
}

// Define the deploy
verbose('[' . $stage . '] Creating new release directory and pulling from remote');
verbose('['.$stage.'] Creating new release directory and pulling from remote');
// Fixes https://github.com/DALTCORE/laravel-deploy-helper/issues/6#issuecomment-315124310
$url = config('laravel-deploy-helper.stages.' . $stage . '.git.http');
$url = config('laravel-deploy-helper.stages.'.$stage.'.git.http');
if ($url === null) {
$url = config('laravel-deploy-helper.stages.' . $stage . '.git');
$url = config('laravel-deploy-helper.stages.'.$stage.'.git');
}

SSH::execute($stage, ['mkdir ' . $home . '/releases/' . $releaseName]);
SSH::execute($stage, ['mkdir '.$home.'/releases/'.$releaseName]);
SSH::execute(
$stage,
[
'cd ' . $home . '/releases/' . $releaseName . '; ' .
'git clone -b ' . $branch . ' ' . "'" . $url . "'" . ' .'
'cd '.$home.'/releases/'.$releaseName.'; '.
'git clone -b '.$branch.' '."'".$url."'".' .',
]
);

// Pre-flight for shared stuff
$items['directories'] = [];
foreach ($shared['directories'] as $share) {
verbose('[' . $stage . '] About to share directory "' . $home . '/current/' . $share . '"');
SSH::execute($stage, ['[ -e ' . $home . '/current/' . $share . ' ] && cp -R -p ' . $home . '/current/'
. $share . ' ' . $home . '/shared/' . $share]);
verbose('['.$stage.'] About to share directory "'.$home.'/current/'.$share.'"');
SSH::execute($stage, ['[ -e '.$home.'/current/'.$share.' ] && cp -R -p '.$home.'/current/'
.$share.' '.$home.'/shared/'.$share, ]);
SSH::execute(
$stage,
[$items['directories'][] = '[ -e ' . $home . '/shared/' . $share . ' ] && cp -R -p ' . $home .
'/shared/' . $share . ' ' . $home . '/releases/' . $releaseName]
[$items['directories'][] = '[ -e '.$home.'/shared/'.$share.' ] && cp -R -p '.$home.
'/shared/'.$share.' '.$home.'/releases/'.$releaseName, ]
);
}
// Pre-flight for shared stuff
$items['files'] = [];
foreach ($shared['files'] as $share) {
verbose('[' . $stage . '] About to share file "' . $home . '/current/' . $share . '"');
SSH::execute($stage, ['[ -e ' . $home . '/current/' . $share . ' ] && cp -p ' . $home . '/current/' . $share
. ' ' . $home . '/shared/' . $share]);
SSH::execute($stage, ['[ -e ' . $home . '/shared/' . $share . ' ] && cp -p ' . $home . '/shared/' . $share .
' ' . $home . '/releases/' . $releaseName . '/' . $share]);
verbose('['.$stage.'] About to share file "'.$home.'/current/'.$share.'"');
SSH::execute($stage, ['[ -e '.$home.'/current/'.$share.' ] && cp -p '.$home.'/current/'.$share
.' '.$home.'/shared/'.$share, ]);
SSH::execute($stage, ['[ -e '.$home.'/shared/'.$share.' ] && cp -p '.$home.'/shared/'.$share.
' '.$home.'/releases/'.$releaseName.'/'.$share, ]);
}

// Define commands
verbose('[' . $stage . '] Executing custom commands');
verbose('['.$stage.'] Executing custom commands');
$items = [];
foreach ($commands as $command) {
SSH::execute($stage, ['cd ' . $home . '/releases/' . $releaseName . ' && ' . $command]);
SSH::execute($stage, ['cd '.$home.'/releases/'.$releaseName.' && '.$command]);
}

// Define post deploy actions
verbose('[' . $stage . '] Linking new release to /current directory and removing temp');
verbose('['.$stage.'] Linking new release to /current directory and removing temp');
SSH::execute($stage, [
'ln -sfn ' . $home . '/releases/' . $releaseName . ' ' . $home . '/current',
'rm -rf ' . $home . '/shared/*',
'ln -sfn '.$home.'/releases/'.$releaseName.' '.$home.'/current',
'rm -rf '.$home.'/shared/*',
]);

// Remove old deploys
if (isset($toRemove) && is_array($toRemove)) {
$items = [];
verbose('[' . $stage . '] Cleaning up old releases');
verbose('['.$stage.'] Cleaning up old releases');
foreach ($toRemove as $dir => $val) {
SSH::execute($stage, ['echo "Removing release ' . $dir . '" && rm -rf ' . $home . '/releases/' . $dir]);
SSH::execute($stage, ['echo "Removing release '.$dir.'" && rm -rf '.$home.'/releases/'.$dir]);
}
}

Expand All @@ -137,15 +137,15 @@ public static function doDeploy($stage, $branch, $ldh)
*/
public static function doRollback(Connection $connection, $stage, $ldh, $dirs)
{
$home = config('laravel-deploy-helper.stages.' . $stage . '.remote.root');
$home = config('laravel-deploy-helper.stages.'.$stage.'.remote.root');

// Define post deploy actions
$connection->define('preformRollback', [
'ln -sfn ' . $home . '/releases/' . $dirs[1] . ' ' . $home . '/current',
'rm -rf ' . $home . '/releases/' . $dirs[0],
'ln -sfn '.$home.'/releases/'.$dirs[1].' '.$home.'/current',
'rm -rf '.$home.'/releases/'.$dirs[0],
]);

verbose("\t" . 'Hold my beer, We\'re rolling back');
verbose("\t".'Hold my beer, We\'re rolling back');
$connection->task('preformRollback');

unset($dirs[0]);
Expand All @@ -165,26 +165,26 @@ public static function doRollback(Connection $connection, $stage, $ldh, $dirs)
*/
public static function doPatch($stage, $branch)
{
$home = config('laravel-deploy-helper.stages.' . $stage . '.remote.root');
$home = config('laravel-deploy-helper.stages.'.$stage.'.remote.root');

// setup ssh connection to remote
$connection = SSH::instance()->into($stage);

$connection->define('preformPatch', [
Command::builder('cd', [$home . '/current']),
Command::builder('cd', [$home.'/current']),
Command::builder('ls', ['-haml']),

Command::builder('git', ['config', 'user.email', '[email protected]']),
Command::builder('git', ['config', 'user.name', 'LDH']),

Command::builder('git', ['fetch']),
Command::builder('git',
['format-patch', '-1', 'origin/' . $branch, 'FETCH_HEAD', '-o', $home . '/patches']),
'git apply --reject --whitespace=fix ' . $home . '/patches/*',
Command::builder('rm', ['-rf', $home . '/patches']),
['format-patch', '-1', 'origin/'.$branch, 'FETCH_HEAD', '-o', $home.'/patches']),
'git apply --reject --whitespace=fix '.$home.'/patches/*',
Command::builder('rm', ['-rf', $home.'/patches']),
]);

verbose("\t" . 'Hold on tight, trying to patch!');
verbose("\t".'Hold on tight, trying to patch!');
$connection->task('preformPatch');
}
}
4 changes: 2 additions & 2 deletions src/Helpers/helpers.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ function verbose($message)
{
$console = new ConsoleOutput();
$console->getFormatter()->setStyle('info', new OutputFormatterStyle('blue', null));
$console->writeln('<info>' . $message . '</info>');
$console->writeln('<info>'.$message.'</info>');
}
}

Expand All @@ -31,7 +31,7 @@ function error($message)
{
$console = new ConsoleOutput();
$console->getFormatter()->setStyle('error', new OutputFormatterStyle('white', 'red'));
$console->writeln('<error>' . $message . '</error>');
$console->writeln('<error>'.$message.'</error>');
}
}

Expand Down

0 comments on commit 2bd0548

Please sign in to comment.