Created
July 5, 2018 09:40
-
-
Save tiagobastos/fe6c0ab10a492224cf6c2ffb657f9de1 to your computer and use it in GitHub Desktop.
Envoy Generic configuration file
This file contains 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
@servers(['production' => 'user@hostname']) | |
@setup | |
$repo = 'github:ACCOUNT/REPOSITORY.GIT'; // ssh config with host github | |
$release_dir = '/path/to/all/REPOSITORY/releases'; | |
$app_dir = '/path/to/document/root'; | |
$release = 'release_' . date('d.m.Y_H.i.s'); | |
@endsetup | |
@macro('deploy', ['on' => 'production']) | |
deploy_prepare | |
fetch_repo | |
run_composer | |
run_npm | |
run_elixir | |
move_env_file | |
update_permissions | |
run_migrations_refresh | |
update_symlinks | |
after_deploy | |
@endmacro | |
@task('deploy_prepare') | |
echo '**************************************'; | |
echo '* Task: deploy_prepare *'; | |
echo '**************************************'; | |
[ -d {{ $release_dir }} ] || mkdir -p {{ $release_dir }}; | |
@endtask | |
@task('fetch_repo') | |
echo '**************************************'; | |
echo '* Task fetch_repo *'; | |
echo '**************************************'; | |
cd {{ $release_dir }}; | |
git clone {{ $repo }} {{ $release }}; | |
@endtask | |
@task('fetch_repo_update') | |
echo '**************************************'; | |
echo '* Task fetch_repo_update *'; | |
echo '**************************************'; | |
cd {{ $release_dir }}; | |
git reset --hard HEAD; | |
git push origin master; | |
@endtask | |
@task('run_composer') | |
echo '**************************************'; | |
echo '* Task run_composer *'; | |
echo '**************************************'; | |
cd {{ $release_dir }}/{{ $release }}; | |
COMPOSER_CACHE_DIR=/dev/null composer install --prefer-dist --no-interaction --optimize-autoloader; | |
@endtask | |
@task('run_npm') | |
echo '**************************************'; | |
echo '* Task run_npm *'; | |
echo '**************************************'; | |
cd {{ $release_dir }}/{{ $release }}; | |
npm install; | |
@endtask | |
@task('run_elixir') | |
echo '**************************************'; | |
echo '* Task run_elixir *'; | |
echo '**************************************'; | |
cd {{ $release_dir }}/{{ $release }}; | |
gulp --production; | |
@endtask | |
@task('move_env_file') | |
echo '**************************************'; | |
echo '* Task move_env_file *'; | |
echo '**************************************'; | |
cp {{ $release_dir }}/.env {{ $release_dir }}/{{ $release }}/.env; | |
@endtask | |
@task('update_permissions') | |
echo '**************************************'; | |
echo '* Task update_permissions *'; | |
echo '**************************************'; | |
chown -R :nginx {{ $release_dir }}/{{ $release }}; | |
chmod -R ug+rwx {{ $release_dir }}/{{ $release }}; | |
@endtask | |
@task('run_migrations') | |
echo '**************************************'; | |
echo '* Task run_migrations *'; | |
echo '**************************************'; | |
cd {{ $release_dir }}/{{ $release }}; | |
php artisan migrate --force; | |
composer dump-autoload -o; | |
@endtask | |
@task('run_migrations_refresh') | |
echo '**************************************'; | |
echo '* Task run_migrations_refresh *'; | |
echo '**************************************'; | |
cd {{ $release_dir }}/{{ $release }}; | |
php artisan migrate:refresh --seed --force; | |
composer dump-autoload -o; | |
@endtask | |
@task('update_symlinks') | |
echo '**************************************'; | |
echo '* Task update_symlinks *'; | |
echo '**************************************'; | |
ln -nfs {{ $release_dir }}/{{ $release }} {{ $app_dir }}; | |
chgrp -h nginx {{ $app_dir }}; | |
@endtask | |
@task('after_deploy') | |
echo 'Deployment end'; | |
@endtask |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment