Fixed branches for SVN build. Issue #65.

This commit is contained in:
Dmitry Khomutov 2017-05-17 21:46:55 +07:00
commit e071088bba
No known key found for this signature in database
GPG key ID: 7EB36C9576F9ECB9
4 changed files with 51 additions and 35 deletions

View file

@ -739,7 +739,19 @@ class Project extends Model
public function getBranch()
{
if (empty($this->data['branch'])) {
return $this->getType() === 'hg' ? 'default' : 'master';
$projectType = $this->getType();
switch ($projectType) {
case 'hg':
$branch = 'default';
break;
case 'svn':
$branch = 'trunk';
break;
default:
$branch = 'master';
}
return $branch;
} else {
return $this->data['branch'];
}
@ -795,7 +807,7 @@ class Project extends Model
}
$cacheKey = 'Cache.ProjectEnvironments.' . $key;
$rtn = $this->cache->get($cacheKey, null);
$rtn = $this->cache->get($cacheKey, null);
if (empty($rtn)) {
$store = $this->getEnvironmentStore();
@ -813,12 +825,13 @@ class Project extends Model
*/
public function getEnvironmentsNames()
{
$environments = $this->getEnvironmentsObjects();
$environments = $this->getEnvironmentsObjects();
$environments_names = [];
foreach($environments['items'] as $environment) {
/** @var Environment $environment */
$environments_names[] = $environment->getName();
}
return $environments_names;
}
@ -829,14 +842,16 @@ class Project extends Model
*/
public function getEnvironments()
{
$environments = $this->getEnvironmentsObjects();
$environments = $this->getEnvironmentsObjects();
$environments_config = [];
foreach($environments['items'] as $environment) {
/** @var Environment $environment */
$environments_config[$environment->getName()] = $environment->getBranches();
}
$yaml_dumper = new YamlDumper();
$value = $yaml_dumper->dump($environments_config, 10, 0, true, false);
$value = $yaml_dumper->dump($environments_config, 10, 0, true, false);
return $value;
}
@ -847,12 +862,11 @@ class Project extends Model
*/
public function setEnvironments($value)
{
$yaml_parser = new YamlParser();
$environments_config = $yaml_parser->parse($value);
$environments_names = !empty($environments_config) ? array_keys($environments_config) : [];
$yaml_parser = new YamlParser();
$environments_config = $yaml_parser->parse($value);
$environments_names = !empty($environments_config) ? array_keys($environments_config) : [];
$current_environments = $this->getEnvironmentsObjects();
$store = $this->getEnvironmentStore();
$store = $this->getEnvironmentStore();
foreach ($current_environments['items'] as $environment) {
/** @var Environment $environment */
$key = array_search($environment->getName(), $environments_names);
@ -866,6 +880,7 @@ class Project extends Model
$store->delete($environment);
}
}
if (!empty($environments_names)) {
// add
foreach ($environments_names as $environment_name) {
@ -880,29 +895,32 @@ class Project extends Model
/**
* @param string $branch
*
* @return string[]
*/
public function getEnvironmentsNamesByBranch($branch)
{
$environments_names = [];
$environments = $this->getEnvironmentsObjects();
$default_branch = ($branch == $this->getBranch());
$environments = $this->getEnvironmentsObjects();
$default_branch = ($branch == $this->getBranch());
foreach($environments['items'] as $environment) {
/** @var Environment $environment */
if ($default_branch || in_array($branch, $environment->getBranches())) {
$environments_names[] = $environment->getName();
}
}
return $environments_names;
}
/**
* @param string $environment_name
*
* @return string[]
*/
public function getBranchesByEnvironment($environment_name)
{
$branches = [];
$branches = [];
$environments = $this->getEnvironmentsObjects();
foreach($environments['items'] as $environment) {
/** @var Environment $environment */
@ -910,6 +928,7 @@ class Project extends Model
return $environment->getBranches();
}
}
return $branches;
}
}