Skip to content

Instantly share code, notes, and snippets.

@kresnasatya
Last active May 24, 2019 21:50
Show Gist options
  • Save kresnasatya/fd4808004ef3819e05a92032e324834f to your computer and use it in GitHub Desktop.
Save kresnasatya/fd4808004ef3819e05a92032e324834f to your computer and use it in GitHub Desktop.
Envoy
@servers(['web' => 'deployer@159.65.143.92'])
@setup
$repository = 'git@gitlab.com:satyakresna/test-laravel.git';
$releases_dir = '/var/www/test-laravel/releases';
$app_dir = '/var/www/test-laravel';
$release = 'release_' . date('YmdHis');
$new_release_dir = $releases_dir .'/'. $release;
@endsetup
@story('deploy')
clone_repository
run_composer
copy_env
update_symlinks
run_artisan
@endstory
@task('clone_repository')
echo 'Cloning repository'
[ -d {{ $releases_dir }} ] || mkdir {{ $releases_dir }}
git clone --depth 1 {{ $repository }} {{ $new_release_dir }}
@endtask
@task('run_composer')
echo "Starting deployment ({{ $release }})"
cd {{ $releases_dir }}/{{ $release }}
composer install --prefer-dist --no-scripts -q -o
echo 'Finish deployment ({{ $release }})'
@endtask
@task('copy_env')
echo "Copy .env"
cd {{ $app_dir }}
cp .env.example .env
echo "Done"
@endtask
@task('update_symlinks')
echo "Linking storage directory"
rm -rf {{ $new_release_dir }}/storage
ln -nfs {{ $app_dir }}/storage {{ $new_release_dir }}/storage
echo 'Linking .env file'
ln -nfs {{ $app_dir }}/.env {{ $new_release_dir }}/.env
echo 'Linking current release'
ln -nfs {{ $new_release_dir }} {{ $app_dir }}/current
@endtask
@task('run_artisan')
echo "Move to ({{ $releases_dir }}/{{ $release }})"
cd {{ $releases_dir }}/{{ $release }}
echo "Running artisan"
php artisan key:generate
echo 'Done'
@endtask
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment