mirror of
https://github.com/andres-montanez/Magallanes
synced 2024-06-16 12:35:04 +02:00
Adds general.yml parameter "ssh_needs_tty" which appends "-t" to the ssh
command Adds deployment parameter "rsync: { copy: yes }" which copies the prior release then rsync's (to increase speed)
This commit is contained in:
parent
5cc9c02c3e
commit
e7d8d5ce68
|
@ -73,13 +73,15 @@ class InitCommand extends AbstractCommand
|
||||||
'%notificationEnabled%',
|
'%notificationEnabled%',
|
||||||
'%loggingEnabled%',
|
'%loggingEnabled%',
|
||||||
'%maxlogs%',
|
'%maxlogs%',
|
||||||
|
'%ssh_needs_tty%',
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
$projectName,
|
$projectName,
|
||||||
$notificationEmail,
|
$notificationEmail,
|
||||||
$notificationEnabled,
|
$notificationEnabled,
|
||||||
'true',
|
'true',
|
||||||
30
|
30,
|
||||||
|
'false'
|
||||||
),
|
),
|
||||||
$this->getGeneralConfigTemplate()
|
$this->getGeneralConfigTemplate()
|
||||||
);
|
);
|
||||||
|
@ -98,8 +100,9 @@ class InitCommand extends AbstractCommand
|
||||||
. 'email: %notificationEmail%' . PHP_EOL
|
. 'email: %notificationEmail%' . PHP_EOL
|
||||||
. 'notifications: %notificationEnabled%' . PHP_EOL
|
. 'notifications: %notificationEnabled%' . PHP_EOL
|
||||||
. 'logging: %loggingEnabled%' . PHP_EOL
|
. 'logging: %loggingEnabled%' . PHP_EOL
|
||||||
. 'maxlogs: %maxlogs%' . PHP_EOL;
|
. 'maxlogs: %maxlogs%' . PHP_EOL
|
||||||
|
. 'ssh_needs_tty: %ssh_needs_tty%' . PHP_EOL;
|
||||||
|
|
||||||
return $template;
|
return $template;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -179,17 +179,20 @@ abstract class AbstractTask
|
||||||
$releasesDirectory = '';
|
$releasesDirectory = '';
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$releasesDirectory = '/'
|
$releasesDirectory = '/'
|
||||||
. $this->getConfig()->release('directory', 'releases')
|
. $this->getConfig()->release('directory', 'releases')
|
||||||
. '/'
|
. '/'
|
||||||
. $this->getConfig()->getReleaseId();
|
. $this->getConfig()->getReleaseId();
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$releasesDirectory = '';
|
$releasesDirectory = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if general.yml includes "ssy_needs_tty: true", then add "-t" to the ssh command
|
||||||
|
$needs_tty = ($this->getConfig()->general('ssh_needs_tty',false) ? "-t" : "");
|
||||||
|
|
||||||
$localCommand = 'ssh -p ' . $this->getConfig()->getHostPort() . ' '
|
$localCommand = 'ssh ' . $needs_tty . ' -p ' . $this->getConfig()->getHostPort() . ' '
|
||||||
. '-q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no '
|
. '-q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no '
|
||||||
. $this->getConfig()->deployment('user') . '@' . $this->getConfig()->getHostName() . ' '
|
. $this->getConfig()->deployment('user') . '@' . $this->getConfig()->getHostName() . ' '
|
||||||
. '"cd ' . rtrim($this->getConfig()->deployment('to'), '/') . $releasesDirectory . ' && '
|
. '"cd ' . rtrim($this->getConfig()->deployment('to'), '/') . $releasesDirectory . ' && '
|
||||||
|
@ -213,4 +216,4 @@ abstract class AbstractTask
|
||||||
return $this->runCommandLocal($command, $output);
|
return $this->runCommandLocal($command, $output);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,12 @@ class RsyncTask extends AbstractTask implements IsReleaseAware
|
||||||
if ($this->getConfig()->getParameter('overrideRelease', false) == true) {
|
if ($this->getConfig()->getParameter('overrideRelease', false) == true) {
|
||||||
return 'Deploy via Rsync (with Releases override) [built-in]';
|
return 'Deploy via Rsync (with Releases override) [built-in]';
|
||||||
} else {
|
} else {
|
||||||
return 'Deploy via Rsync (with Releases) [built-in]';
|
$rsync_copy = $this->getConfig()->deployment("rsync");
|
||||||
|
if ( $rsync_copy && is_array($rsync_copy) && $rsync_copy['copy'] ) {
|
||||||
|
return 'Deploy via Rsync (with Releases) [built-in, incremental]';
|
||||||
|
} else {
|
||||||
|
return 'Deploy via Rsync (with Releases) [built-in]';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return 'Deploy via Rsync [built-in]';
|
return 'Deploy via Rsync [built-in]';
|
||||||
|
@ -58,8 +63,8 @@ class RsyncTask extends AbstractTask implements IsReleaseAware
|
||||||
'.svn',
|
'.svn',
|
||||||
'.mage',
|
'.mage',
|
||||||
'.gitignore',
|
'.gitignore',
|
||||||
'.gitkeep',
|
'.gitkeep',
|
||||||
'nohup.out'
|
'nohup.out'
|
||||||
);
|
);
|
||||||
|
|
||||||
// Look for User Excludes
|
// Look for User Excludes
|
||||||
|
@ -73,7 +78,18 @@ class RsyncTask extends AbstractTask implements IsReleaseAware
|
||||||
$deployToDirectory = rtrim($this->getConfig()->deployment('to'), '/')
|
$deployToDirectory = rtrim($this->getConfig()->deployment('to'), '/')
|
||||||
. '/' . $releasesDirectory
|
. '/' . $releasesDirectory
|
||||||
. '/' . $this->getConfig()->getReleaseId();
|
. '/' . $this->getConfig()->getReleaseId();
|
||||||
$this->runCommandRemote('mkdir -p ' . $releasesDirectory . '/' . $this->getConfig()->getReleaseId());
|
$resultFetch = $this->runCommandRemote('ls -ld current | cut -d"/" -f2', $releaseToOverride);
|
||||||
|
|
||||||
|
if ( $resultFetch ) {
|
||||||
|
// If deployment configuration is rsync, include a flag to simply sync the deltas between the prior release
|
||||||
|
// rsync: { copy: yes }
|
||||||
|
$rsync_copy = $this->getConfig()->deployment("rsync");
|
||||||
|
if ( $rsync_copy && is_array($rsync_copy) && $rsync_copy['copy'] ) {
|
||||||
|
$this->runCommandRemote('cp -R ' . $releasesDirectory . '/' . $releaseToOverride . ' ' . $releasesDirectory . '/' . $this->getConfig()->getReleaseId());
|
||||||
|
} else {
|
||||||
|
$this->runCommandRemote('mkdir -p ' . $releasesDirectory . '/' . $this->getConfig()->getReleaseId());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$command = 'rsync -avz '
|
$command = 'rsync -avz '
|
||||||
|
@ -137,4 +153,4 @@ class RsyncTask extends AbstractTask implements IsReleaseAware
|
||||||
$excludesRsync = trim($excludesRsync);
|
$excludesRsync = trim($excludesRsync);
|
||||||
return $excludesRsync;
|
return $excludesRsync;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue