Created
February 1, 2017 12:57
-
-
Save anonymous/aa25ec38f04cac232a31ef6cc6f87efa to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@include('envoy.config.php'); | |
@servers($servers) | |
@setup | |
$startTime = microtime(true); | |
$startedAt = date('H:i:s'); | |
if ( ! isset($repo) ) { | |
throw new Exception('Variável $repo não está definido!'); | |
} | |
if ( ! isset($servers) ) { | |
throw new Exception('Variável $servers não está definida!'); | |
} | |
if ( ! isset($paths) ) { | |
throw new Exception('Variável $paths não está definida!'); | |
} | |
if ( ! isset($env)) { | |
throw new Exception('Variável $env não está definida!'); | |
} | |
$now = new DateTime(); | |
$date = $now->format('YmdHis'); | |
$branch = isset($branch) ? $branch : 'master'; | |
$path = rtrim($paths[$env], '/'); | |
$pathDeploy = $pathsDeploys[$env]; | |
$pathConfig = $pathsConfigs[$env]; | |
$release = "{$pathDeploy}{$date}/"; | |
$server = $servers[$env]; | |
if ( substr($path, 0, 1) !== '/' ) { | |
throw new Exception('Cuidado - a variável $path não inicia com /'); | |
} | |
$notify = function($msg) use($app, $env, $branch){ | |
$title = "{$app}@{$env}^{$branch}"; | |
exec('notify-send -i "${PWD}/img/BrasaoRondonia50x50.png" "'.$title.'" "'.$msg.'"'); | |
}; | |
@endsetup | |
@task('deploy', ['on' => $env]) | |
<?php $notify("Iniciado deploy:{$env} às {$startedAt}"); ?> | |
echo "Iniciado deploy em {{ date('H:i:s') }}..."; | |
echo "Env: {{ $env }}"; | |
echo "Server: {{ $server }}"; | |
echo "Path: {{ $path }}"; | |
echo "Release: {{ $release }}"; | |
git clone --verbose --depth=1 --branch={{ $branch }} {{ $repo }} {{ $release }}; | |
if [ ! -d "{{ $release }}" ]; then | |
echo "Falha ao clonar o repositório"; | |
return; | |
fi; | |
cp --verbose {{ $pathConfig }} {{ $release }}constants.php; | |
if [ -d "{{ $pathAlunoFotos }}" ]; then | |
rm -rf {{ $release }}escola/aluno/fotos; | |
fi; | |
ln -v -s {{ $pathAlunoFotos }} {{ $release }}escola/aluno/fotos; | |
cd {{ $release }}; | |
echo "$(git log -1 --format='%cD (%aN - SHA %h)')" > last_commit.txt; | |
echo "Commit: $(git rev-parse HEAD)"; | |
rm -rf {{ $release }}.git; | |
if [ -d "{{ $path }}" ]; then | |
rm -v {{ $path }}; | |
fi; | |
ln -svn {{ $release }} {{ $path }}; | |
if service --status-all | grep -F 'php5.6-fpm'; then | |
sudo service php5.6-fpm restart; | |
fi; | |
echo "Finalizado deploy."; | |
@endtask | |
@task('cleanup', ['on' => $env]) | |
cd {{ $pathDeploy }}; | |
find . -maxdepth 1 -name "20*" -mmin +2880 | xargs rm -Rf; | |
@endtask | |
@after | |
$executionTime = (int)(microtime(true) - $startTime); | |
$notify("Finalizado {$task}@{$env} em {$executionTime} s"); | |
$dateFinish = date("d/m H:i:s"); | |
$msg = "[{$app}][{$env}^{$branch}][{$dateFinish}][{$executionTime} s] Finalizado {$task}."; | |
@slack($slackHook, '#deploys', $msg) | |
@endafter |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment