mirror of
https://github.com/andres-montanez/Magallanes
synced 2024-06-09 09:12:16 +02:00
Merge c96315103d
into a1e5677192
This commit is contained in:
commit
fb26f8d3c3
12
.editorconfig
Normal file
12
.editorconfig
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 4
|
||||||
|
charset = utf-8
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
[*.{json,lock,yml,less,scss,sass}]
|
||||||
|
indent_size = 2
|
|
@ -1,5 +1,13 @@
|
||||||
language: php
|
language: php
|
||||||
|
|
||||||
|
notifications:
|
||||||
|
webhooks:
|
||||||
|
urls:
|
||||||
|
- https://webhooks.gitter.im/e/edf0bb825450673efbf5
|
||||||
|
on_success: change
|
||||||
|
on_failure: always
|
||||||
|
on_start: never
|
||||||
|
|
||||||
php:
|
php:
|
||||||
- 5.3
|
- 5.3
|
||||||
- 5.4
|
- 5.4
|
||||||
|
|
|
@ -147,13 +147,25 @@ class Config
|
||||||
$configFilePath = getcwd() . '/.mage/config/environment/' . $environment . '.yml';
|
$configFilePath = getcwd() . '/.mage/config/environment/' . $environment . '.yml';
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$this->environmentConfig = $this->loadEnvironment($configFilePath);
|
$defaults = $this->getDefaultEnvironment();
|
||||||
|
$environmentConfig = $this->loadEnvironment($configFilePath);
|
||||||
|
$this->environmentConfig = array_replace_recursive($defaults, $environmentConfig);
|
||||||
} catch (ConfigNotFoundException $e) {
|
} catch (ConfigNotFoundException $e) {
|
||||||
throw new RequiredConfigNotFoundException("Not found required config $configFilePath for environment $environment", 0, $e);
|
throw new RequiredConfigNotFoundException("Not found required config $configFilePath for environment $environment", 0, $e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the default environment configuration from general configuration
|
||||||
|
*
|
||||||
|
* @return array the default environment configuration
|
||||||
|
*/
|
||||||
|
protected function getDefaultEnvironment() {
|
||||||
|
$defaults = $this->general('defaults', null);
|
||||||
|
return !empty($defaults) ? $defaults : array();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param array $parameters
|
* @param array $parameters
|
||||||
|
|
|
@ -110,7 +110,7 @@ class ReleaseTask extends AbstractTask implements IsReleaseAware, SkipOnOverride
|
||||||
if ($resultFetch && $userGroup != '') {
|
if ($resultFetch && $userGroup != '') {
|
||||||
$command.= " && chown -h {$userGroup} {$tmplink}";
|
$command.= " && chown -h {$userGroup} {$tmplink}";
|
||||||
}
|
}
|
||||||
$command.= " && mv -fT {$tmplink} {$symlink}";
|
$command.= " && rm -rf {$symlink} && mv -f {$tmplink} {$symlink}";
|
||||||
$result = $this->runCommandRemote($command);
|
$result = $this->runCommandRemote($command);
|
||||||
|
|
||||||
if ($result) {
|
if ($result) {
|
||||||
|
|
|
@ -75,10 +75,10 @@ class RsyncTask extends BaseStrategyTaskAbstract implements IsReleaseAware
|
||||||
// If copy_tool_rsync, use rsync rather than cp for finer control of what is copied
|
// If copy_tool_rsync, use rsync rather than cp for finer control of what is copied
|
||||||
if ($rsync_copy && is_array($rsync_copy) && $rsync_copy['copy'] && $this->runCommandRemote('test -d ' . $releasesDirectory . '/' . $currentRelease)) {
|
if ($rsync_copy && is_array($rsync_copy) && $rsync_copy['copy'] && $this->runCommandRemote('test -d ' . $releasesDirectory . '/' . $currentRelease)) {
|
||||||
if (isset($rsync_copy['copy_tool_rsync'])) {
|
if (isset($rsync_copy['copy_tool_rsync'])) {
|
||||||
$this->runCommandRemote("rsync -a {$this->excludes(array_merge($excludes, $rsync_copy['rsync_excludes']))} "
|
$this->runCommandRemote("rsync -rlptgom {$this->excludes(array_merge($excludes, $rsync_copy['rsync_excludes']))} "
|
||||||
. "$releasesDirectory/$currentRelease/ $releasesDirectory/{$this->getConfig()->getReleaseId()}");
|
. "$releasesDirectory/$currentRelease/ $releasesDirectory/{$this->getConfig()->getReleaseId()}");
|
||||||
} else {
|
} else {
|
||||||
$this->runCommandRemote('cp -R ' . $releasesDirectory . '/' . $currentRelease . ' ' . $releasesDirectory . '/' . $this->getConfig()->getReleaseId());
|
$this->runCommandRemote('cp -a ' . $releasesDirectory . '/' . $currentRelease . ' ' . $releasesDirectory . '/' . $this->getConfig()->getReleaseId());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$this->runCommandRemote('mkdir -p ' . $releasesDirectory . '/' . $this->getConfig()->getReleaseId());
|
$this->runCommandRemote('mkdir -p ' . $releasesDirectory . '/' . $this->getConfig()->getReleaseId());
|
||||||
|
|
|
@ -140,7 +140,7 @@ class RollbackTask extends AbstractTask implements IsReleaseAware
|
||||||
if ($resultFetch && $userGroup) {
|
if ($resultFetch && $userGroup) {
|
||||||
$command .= " && chown -h {$userGroup} ${tmplink}";
|
$command .= " && chown -h {$userGroup} ${tmplink}";
|
||||||
}
|
}
|
||||||
$command .= " && mv -T {$tmplink} {$symlink}";
|
$command .= " && mv -f {$tmplink} {$symlink}";
|
||||||
|
|
||||||
$result = $this->runCommandRemote($command);
|
$result = $this->runCommandRemote($command);
|
||||||
|
|
||||||
|
|
|
@ -45,13 +45,31 @@ class Factory
|
||||||
$taskName = ucwords(str_replace('-', ' ', $taskName));
|
$taskName = ucwords(str_replace('-', ' ', $taskName));
|
||||||
$taskName = str_replace(' ', '', $taskName);
|
$taskName = str_replace(' ', '', $taskName);
|
||||||
|
|
||||||
if (strpos($taskName, '/') === false) {
|
$patterns = [];
|
||||||
$className = 'Task\\' . $taskName;
|
|
||||||
} else {
|
if (is_array($taskConfig->general('taskPatterns'))) {
|
||||||
$className = 'Mage\\Task\\BuiltIn\\' . str_replace(' ', '\\', ucwords(str_replace('/', ' ', $taskName))) . 'Task';
|
$patterns = $taskConfig->general('taskPatterns');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!class_exists($className)) {
|
$patterns[] = 'Task\\%s';
|
||||||
|
$patterns[] = 'Mage\\Task\\BuiltIn\\%sTask';
|
||||||
|
|
||||||
|
$className = null;
|
||||||
|
|
||||||
|
$taskClass = trim($taskName, '/\\');
|
||||||
|
$taskClass = str_replace(' ', '\\', ucwords(str_replace('/', ' ', $taskClass)));
|
||||||
|
$taskClass = str_replace(' ', '', ucwords(str_replace('-', ' ', $taskClass)));
|
||||||
|
|
||||||
|
foreach ($patterns as $pattern) {
|
||||||
|
$possibleClass = sprintf($pattern, $taskClass);
|
||||||
|
|
||||||
|
if (class_exists($possibleClass)) {
|
||||||
|
$className = $possibleClass;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$className) {
|
||||||
throw new Exception('Task "' . $taskName . '" not found.');
|
throw new Exception('Task "' . $taskName . '" not found.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
# Magallanes #
|
# Magallanes #
|
||||||
|
This repository is a fork of [andres-montanez/Magallanes](https://github.com/andres-montanez/Magallanes) due to project inactivity.
|
||||||
|
|
||||||
[![SensioLabsInsight](https://insight.sensiolabs.com/projects/ed0de53a-a12e-459b-9464-34def5907b56/mini.png)](https://insight.sensiolabs.com/projects/ed0de53a-a12e-459b-9464-34def5907b56)
|
### Project Status
|
||||||
[![Build Status](https://travis-ci.org/andres-montanez/Magallanes.svg?branch=master)](https://travis-ci.org/andres-montanez/Magallanes)
|
| Branch | Build Status | Code Coverage |
|
||||||
[![Coverage Status](https://coveralls.io/repos/andres-montanez/Magallanes/badge.svg?branch=master)](https://coveralls.io/r/andres-montanez/Magallanes?branch=master)
|
| ------- |:------------:|:-------------:|
|
||||||
|
| master | [![Build Status](https://travis-ci.org/cyberhouse/Magallanes.svg?branch=master)](https://travis-ci.org/cyberhouse/Magallanes) | [![Coverage Status](https://coveralls.io/repos/github/cyberhouse/Magallanes/badge.svg?branch=master)](https://coveralls.io/github/cyberhouse/Magallanes?branch=master) |
|
||||||
|
| 2.0 | [![Build Status](https://travis-ci.org/cyberhouse/Magallanes.svg?branch=2.0)](https://travis-ci.org/cyberhouse/Magallanes) | [![Coverage Status](https://coveralls.io/repos/github/cyberhouse/Magallanes/badge.svg?branch=2.0)](https://coveralls.io/github/cyberhouse/Magallanes?branch=2.0) |
|
||||||
|
|
||||||
### What's Magallanes? ###
|
### What's Magallanes? ###
|
||||||
Magallanes is a deployment tool for PHP applications; it's quite simple to use and manage.
|
Magallanes is a deployment tool for PHP applications; it's quite simple to use and manage.
|
||||||
|
|
|
@ -1,9 +1,27 @@
|
||||||
{
|
{
|
||||||
"name": "andres-montanez/magallanes",
|
"name": "cyberhouse/magallanes",
|
||||||
"description": "A Deployment Tool for PHP Applications",
|
"description": "A Deployment Tool for PHP Applications",
|
||||||
"homepage": "http://magephp.com",
|
"homepage": "http://magephp.com",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Andrés Montañez",
|
||||||
|
"role": "Developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Johannes Pichler",
|
||||||
|
"email": "johannes.pichler@cyberhouse.at",
|
||||||
|
"homepage": "https://www.cyberhouse.at",
|
||||||
|
"role": "Developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Georg Großberger",
|
||||||
|
"email": "georg.grossberger@cyberhouse.ats",
|
||||||
|
"homepage": "https://www.cyberhouse.at",
|
||||||
|
"role": "Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
"keywords": ["deployment"],
|
"keywords": ["deployment"],
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=5.4"
|
"php": ">=5.4"
|
||||||
|
|
|
@ -7,3 +7,27 @@ verbose_logging: false
|
||||||
scm:
|
scm:
|
||||||
type: git
|
type: git
|
||||||
url: git://github.com/andres-montanez/Zend-Framework-Twig-example-app.git
|
url: git://github.com/andres-montanez/Zend-Framework-Twig-example-app.git
|
||||||
|
defaults:
|
||||||
|
deployment:
|
||||||
|
user: root
|
||||||
|
from: ./
|
||||||
|
to: /var/www/vhosts/example.com/www
|
||||||
|
excludes:
|
||||||
|
- application/data/cache/twig/*
|
||||||
|
releases:
|
||||||
|
enabled: true
|
||||||
|
max: 5
|
||||||
|
symlink: current
|
||||||
|
directory: releases
|
||||||
|
hosts:
|
||||||
|
- s01.example.com
|
||||||
|
- s02.example.com
|
||||||
|
tasks:
|
||||||
|
pre-deploy:
|
||||||
|
- scm/update
|
||||||
|
on-deploy:
|
||||||
|
- symfony2/cache-warmup: { env: prod }
|
||||||
|
- privileges
|
||||||
|
- sampleTask
|
||||||
|
- sampleTaskRollbackAware
|
||||||
|
verbose_logging: true
|
Loading…
Reference in a new issue