本文整理汇总了PHP中app\models\Project::getDeployWorkspace方法的典型用法代码示例。如果您正苦于以下问题:PHP Project::getDeployWorkspace方法的具体用法?PHP Project::getDeployWorkspace怎么用?PHP Project::getDeployWorkspace使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类app\models\Project
的用法示例。
在下文中一共展示了Project::getDeployWorkspace方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: updateToVersion
/**
* 更新到指定commit版本
*
* @param string $commit
* @return bool
*/
public function updateToVersion($task)
{
$copy = GlobalHelper::str2arr($task->file_list);
$fileAndVersion = [];
foreach ($copy as $file) {
$fileAndVersion[] = StringHelper::explode($file, " ", true, true);
}
$branch = $task->branch == 'trunk' ? $task->branch : ($this->getConfig()->repo_mode == Project::REPO_BRANCH ? 'branches/' : 'tags/') . $task->branch;
// 先更新
$versionSvnDir = sprintf('%s-svn', rtrim(Project::getDeployWorkspace($task->link_id), '/'));
$cmd[] = sprintf('cd %s ', $versionSvnDir);
$cmd[] = $this->_getSvnCmd(sprintf('svn checkout %s/%s .', $this->getConfig()->repo_url, $branch));
// 更新指定文件到指定版本,并复制到同步目录
foreach ($fileAndVersion as $assign) {
if (in_array($assign[0], ['.', '..'])) {
continue;
}
$cmd[] = $this->_getSvnCmd(sprintf('svn up %s %s', $assign[0], empty($assign[1]) ? '' : ' -r ' . $assign[1]));
// 多层目录需要先新建父目录,否则复制失败
if (strpos($assign[0], '/') !== false) {
$cmd[] = sprintf('mkdir -p %s/%s', Project::getDeployWorkspace($task->link_id), dirname($assign[0]));
}
$cmd[] = sprintf('cp -rf %s %s/%s', rtrim($assign[0], '/'), Project::getDeployWorkspace($task->link_id), dirname($assign[0]));
}
$command = join(' && ', $cmd);
return $this->runLocalCommand($command);
}
示例2: updateToVersion
/**
* 更新到指定commit版本
*
* @param TaskModel $task
* @return bool|int
*/
public function updateToVersion(TaskModel $task)
{
// 先更新
$versionSvnDir = rtrim(Project::getDeployWorkspace($task->link_id), '/');
$cmd[] = sprintf('cd %s ', $versionSvnDir);
$cmd[] = $this->_getSvnCmd(sprintf('svn up -q --force -r %d', $task->commit_id));
$command = join(' && ', $cmd);
return $this->runLocalCommand($command);
}
示例3: updateToVersion
/**
* 更新到指定commit版本
*
* @param string $commit
* @return bool
*/
public function updateToVersion($task)
{
// 先更新
$destination = Project::getDeployWorkspace($task->link_id);
$this->updateRepo($task->branch, $destination);
$cmd[] = sprintf('cd %s ', $destination);
$cmd[] = sprintf('/usr/bin/env git reset -q --hard %s', $task->commit_id);
$command = join(' && ', $cmd);
return $this->runLocalCommand($command);
}
示例4: updateToVersion
/**
* 更新到指定commit版本
*
* @param string $commit
* @return bool
*/
public function updateToVersion($commit, $version)
{
// 先更新
$destination = Project::getDeployWorkspace($version);
$this->updateRepo('master', $destination);
$cmd[] = sprintf('cd %s ', $destination);
$cmd[] = sprintf('/usr/bin/env git reset %s', $commit);
$cmd[] = '/usr/bin/env git checkout .';
$command = join(' && ', $cmd);
return $this->runLocalCommand($command);
}
示例5: getRemoteTaskCommand
/**
* 获取远程服务器要操作的任务命令
*
* @param $task string
* @param $version string
* @return string string
*/
public static function getRemoteTaskCommand($task, $version)
{
$tasks = GlobalHelper::str2arr($task);
if (empty($tasks)) {
return '';
}
$cmd = [];
$workspace = rtrim(Project::getDeployWorkspace($version), '/');
$version = Project::getReleaseVersionDir($version);
$pattern = ['#{WORKSPACE}#', '#{VERSION}#'];
$replace = [$workspace, $version];
foreach ($tasks as $task) {
$cmd[] = preg_replace($pattern, $replace, $task);
}
return join(' && ', $cmd);
}
示例6: postDeploy
/**
* post-deploy部署代码后置触发任务
* git代码检出之后,可能做一些调整处理,如vendor拷贝,配置环境适配(mv config-test.php config.php)
*
* @return bool
*/
public function postDeploy($version)
{
$tasks = GlobalHelper::str2arr($this->getConfig()->post_deploy);
if (empty($tasks)) {
return true;
}
$cmd = [];
$workspace = rtrim(Project::getDeployWorkspace($version), '/');
$pattern = ['#{WORKSPACE}#'];
$replace = [$workspace];
foreach ($tasks as $task) {
$cmd[] = preg_replace($pattern, $replace, $task);
}
$command = join(' && ', $cmd);
return $this->runLocalCommand($command);
}
示例7: postDeploy
/**
* post-deploy部署代码后置触发任务
* git代码检出之后,可能做一些调整处理,如vendor拷贝,配置环境适配(mv config-test.php config.php)
*
* @return bool
*/
public function postDeploy($version)
{
$tasks = GlobalHelper::str2arr($this->getConfig()->post_deploy);
if (empty($tasks)) {
return true;
}
// 本地可能要做一些依赖环境变量的命令操作
$cmd = ['source /etc/profile'];
$workspace = rtrim(Project::getDeployWorkspace($version), '/');
$pattern = ['#{WORKSPACE}#'];
$replace = [$workspace];
// 简化用户切换目录,直接切换到当前部署空间:{deploy_from}/{env}/{project}-YYmmdd-HHiiss
$cmd[] = "cd {$workspace}";
foreach ($tasks as $task) {
$cmd[] = preg_replace($pattern, $replace, $task);
}
$command = join(' && ', $cmd);
return $this->runLocalCommand($command);
}
示例8: updateToVersion
/**
* 更新到指定commit版本
*
* @param TaskModel $task
* @return bool|int
*/
public function updateToVersion(TaskModel $task)
{
// 兼容无trunk、无branches、无tags下为空
$branch = $task->branch == 'trunk' || $task->branch == '' ? $task->branch : ($this->getConfig()->repo_mode == Project::REPO_BRANCH ? 'branches/' : 'tags/') . $task->branch;
// 先更新
$versionSvnDir = sprintf('%s-svn', rtrim(Project::getDeployWorkspace($task->link_id), '/'));
$cmd[] = sprintf('cd %s ', $versionSvnDir);
$cmd[] = $this->_getSvnCmd(sprintf('svn checkout -q %s/%s .', $this->getConfig()->repo_url, $branch));
// 更新指定文件到指定版本,并复制到同步目录
$fileAndVersion = $this->getFileAndVersionList($task);
foreach ($fileAndVersion as $assign) {
if (in_array($assign['file'], ['.', '..'])) {
continue;
}
$cmd[] = $this->_getSvnCmd(sprintf('svn up -q %s %s', $assign['file'], empty($assign['version']) ? '' : ' -r ' . $assign['version']));
// 多层目录需要先新建父目录,否则复制失败
if (strpos($assign['file'], '/') !== false) {
$cmd[] = sprintf('mkdir -p %s/%s', Project::getDeployWorkspace($task->link_id), dirname($assign['file']));
}
$cmd[] = sprintf('cp -rf %s %s/%s', rtrim($assign['file'], '/'), Project::getDeployWorkspace($task->link_id), dirname($assign['file']));
}
$command = join(' && ', $cmd);
return $this->runLocalCommand($command);
}
示例9: cleanUpLocal
/**
* 收尾做处理工作,如清理本地的部署空间
*
* @param $version
* @return bool|int
*/
public function cleanUpLocal($version)
{
$cmd[] = "rm -rf " . Project::getDeployWorkspace($version);
if ($this->config->repo_type == Project::REPO_SVN) {
$cmd[] = sprintf('rm -rf %s-svn', rtrim(Project::getDeployWorkspace($version), '/'));
}
$command = join(' && ', $cmd);
return $this->runLocalCommand($command);
}
示例10: cleanUpLocal
/**
* 收尾做处理工作,如清理本地的部署空间
*
* @param $version
* @return bool|int
*/
public function cleanUpLocal($version)
{
$cmd[] = 'rm -rf ' . Project::getDeployWorkspace($version);
$cmd[] = sprintf('rm -f %s/*.tar.gz', dirname(Project::getDeployPackagePath($version)));
$command = join(' && ', $cmd);
return $this->runLocalCommand($command);
}
示例11: cleanUp
/**
* 收尾做处理工作,如清理本地的部署空间
*
* @param $version
* @return bool|int
*/
public function cleanUp($version)
{
$command = "rm -rf " . Project::getDeployWorkspace($version);
return $this->runLocalCommand($command);
}