Skip to content

Instantly share code, notes, and snippets.

@irineujunior
Created January 8, 2017 19:33
Show Gist options
  • Save irineujunior/afd86c8fe46296e1099141d7b6c1d770 to your computer and use it in GitHub Desktop.
Save irineujunior/afd86c8fe46296e1099141d7b6c1d770 to your computer and use it in GitHub Desktop.
Modelo de Envoy.blade.php para os projetos da MIXD
@servers(['develop' => 'vagrant@192.168.10.10'])
@setup
$repo = 'git@git.mixd.com.br:mixdinternet/xxx.git';
$repo_host = str_replace('git@', '', strstr($repo, ':', true)) . '/' . str_replace(':', '', strstr(strstr($repo, ':'), '.git', true));
$class = isset($class) ? '--class=' . $class : '';
$branch = isset($branch) ? $branch : 'develop';
if($branch == 'develop') {
$host = 'http://xxx.local';
$dir = '/home/vagrant/Code/Xxx';
$php = 'php';
$composer = 'composer';
}
if($branch == 'master') {
$host = 'http://xxx.mixd.com.br';
$dir = '/var/www/xxx.mixd.com.br/web';
$php = '/opt/phpfcgi-5.6.8/bin/php';
$composer = '/usr/local/bin/composer';
}
$artisan = $dir . '/artisan';
@endsetup
@task('list')
ls -la {{ $dir }}
@endtask
@story('create')
clone
install
env
migrate
db:seed
optimize
@endstory
@story('deploy')
down
pull
remove
install
migrate
optimize
up
@endstory
@task('clone')
cd {{ $dir }}
if [ "$(ls {{ $dir }} --ignore='.' --ignore='..')" ]; then
echo "O diretório {{ $dir }} não está vazio"
exit 1
fi
echo "Clonando em '{{ $dir }}'..."
if ! (git clone -b {{ $branch }} {{ $repo }} {{ $dir }} 2> /dev/null) then
echo 'Falha ao clonar o projeto.'
echo 'Verifique se a chave ssh está cadastrada em http://{{ $repo_host }}/deploy_keys.'
# se a chave não existir, ela é gerada
if ! [ "$(ls -la ~/.ssh/id_rsa)" ]; then
ssh-keygen -t rsa -b 4096 -C "envoy@mixd.com.br" -f ~/.ssh/id_rsa -q -N ""
fi
cat ~/.ssh/id_rsa
exit 1
else
git config core.fileMode false
fi
@endtask
@task('install')
echo 'Executando a instalação das dependências'
cd {{ $dir }} && {{ $composer }} install
@endtask
@task('env')
echo 'Criando o arquivo .env'
cd {{ $dir }} && cp {{ $dir }}/.env.example {{ $dir }}/.env
{{ $php }} {{ $artisan }} key:generate
touch {{ $dir }}/storage/database.sqlite
#TODO: Trocar o host no .env
@endtask
@task('migrate')
echo 'Executando as migrações'
#cd {{ $dir }} && {{ $php }} {{ $artisan }} migrate --force
cd {{ $dir }} && {{ $php }} {{ $artisan }} migrate:packages
@endtask
@task('db:seed')
echo 'Semeando o banco'
cd {{ $dir }} && {{ $php }} {{ $artisan }} db:seed {{ $class }} --force
@endtask
@task('down')
echo 'Ativando modo manutenção'
cd {{ $dir }} && {{ $php }} {{ $artisan }} down
@endtask
@task('up')
echo 'Desativando modo manutenção'
cd {{ $dir }} && {{ $php }} {{ $artisan }} up
@endtask
@task('remove')
echo 'Removendo a pasta vendor'
if [ -d {{ $dir }}/vendor ]; then
rm -rf {{ $dir }}/vendor
fi
@endtask
@task('pull')
echo 'Atualizando a partir do repositório'
cd {{ $dir }} && git reset --hard && git pull origin {{ $branch }}
@endtask
@task('optimize')
echo 'Otimizando'
cd {{ $dir }}
{{ $php }} {{ $artisan }} clear-compiled
{{ $php }} {{ $artisan }} optimize
{{ $php }} {{ $artisan }} config:cache
{{ $php }} {{ $artisan }} route:cache
{{ $php }} {{ $artisan }} cache:clear
@endtask
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment