mirror of
https://github.com/andres-montanez/Magallanes
synced 2024-05-03 06:23:15 +02:00
Merge pull request #184 from edpauto/env-vars-support
Environment variables support
This commit is contained in:
commit
7f0cab1a38
|
@ -222,6 +222,7 @@ abstract class AbstractTask
|
|||
*/
|
||||
final protected function runCommand($command, &$output = null)
|
||||
{
|
||||
$command = ltrim($this->getEnvVarsString() . ' ' . $command);
|
||||
if ($this->getStage() == self::STAGE_DEPLOY || $this->getStage() == self::STAGE_POST_RELEASE) {
|
||||
return $this->runCommandRemote($command, $output);
|
||||
} else {
|
||||
|
@ -305,4 +306,56 @@ abstract class AbstractTask
|
|||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the array of environment variables
|
||||
* Returned array contains both system variables and variables set in config
|
||||
* WARNING: To access system's variables you need to set proper value in your php.ini at variables_order key
|
||||
* @see http://php.net/manual/en/ini.core.php#ini.variables-order
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function getEnvVariables()
|
||||
{
|
||||
$configVars = array_merge(
|
||||
$this->getConfig()->general('env', []),
|
||||
$this->getConfig()->environmentConfig('env', []),
|
||||
$this->getConfig()->getParameter('env', []),
|
||||
[
|
||||
'variables' => $this->getConfig()->getParameter('env.variables', [])
|
||||
]
|
||||
);
|
||||
|
||||
if (isset($configVars['variables'])) {
|
||||
$configVars = $configVars['variables'];
|
||||
}
|
||||
|
||||
$envVariables = array_merge(
|
||||
$_ENV,
|
||||
$configVars
|
||||
);
|
||||
|
||||
return $envVariables;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns ready to inject environment string
|
||||
* The string is build from env vars array in schema:
|
||||
* key1=value1 key2=value3 ...
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getEnvVarsString()
|
||||
{
|
||||
$envVarsArray = $this->getEnvVariables();
|
||||
$envVars = array_map(
|
||||
function ($key, $value) {
|
||||
return "$key=$value";
|
||||
},
|
||||
array_keys($envVarsArray),
|
||||
$this->getEnvVariables()
|
||||
);
|
||||
|
||||
return join(' ', $envVars);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,3 +22,6 @@ tasks:
|
|||
- sampleTask
|
||||
- sampleTaskRollbackAware
|
||||
verbose_logging: true
|
||||
env:
|
||||
variables:
|
||||
symfony_env: prod
|
||||
|
|
|
@ -7,3 +7,7 @@ verbose_logging: false
|
|||
scm:
|
||||
type: git
|
||||
url: git://github.com/andres-montanez/Zend-Framework-Twig-example-app.git
|
||||
env:
|
||||
variables:
|
||||
node_path: "/bin/node"
|
||||
symfony_env: prod
|
||||
|
|
Loading…
Reference in a new issue