Files
portal/Envoy.blade.php
2020-10-03 09:58:23 +02:00

71 lines
1.9 KiB
PHP

@setup
require __DIR__.'/vendor/autoload.php';
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__, '.env.prod');
$dotenv->load();
$config = new \StdClass;
$config->test_path = "/var/www/html/portal";
$config->prod_path = "/var/www/html/portal";
$config->test_branch = "development";
$config->prod_branch = "production";
$date = ( new DateTime )->format('Y-m-d H:i:s');
$dateSave = ( new DateTime )->format('Ymd-Hi');
$db_host = $_ENV['DB_DATABASE'];
$db_user = $_ENV['DB_USERNAME'];
$db_pass = $_ENV['DB_PASSWORD'];
$rsync = $_ENV['RSYNC_SAV'];
$slack = $_ENV['SLACK_URL'];
@endsetup
@servers(['test' => ['raspitest'], 'prod' => ['raspigate']])
@story('deploy')
sql-backup
deploy-prod
@endstory
@task('sql-backup', ['on' => ['prod']])
cd {{ $config->prod_path }}
mysqldump --user={{ $db_user }} --password={{ $db_pass }} -B {{ $db_host }} > storage/logs/database/save-{{ $db_host }}-{{ $dateSave }}.sql
scp -p storage/logs/database/save-{{ $db_host }}-{{ $dateSave }}.sql {{ $rsync }}
@endtask
@task('deploy-test', ['on' => ['test']])
cd {{ $config->test_path }}
{{-- php artisan down--}}
{{-- git reset --hard HEAD--}}
{{-- git pull origin {{ $config->test_branch }}--}}
{{-- composer install--}}
{{-- npm install--}}
{{-- npm run production--}}
{{-- php artisan migrate --force--}}
{{-- php artisan cache:clear--}}
{{-- php artisan config:cache--}}
{{-- php artisan view:clear--}}
{{-- php artisan optimize--}}
{{-- php artisan up--}}
@endtask
@task('deploy-prod', ['on' => ['prod']])
cd {{ $config->prod_path }}
php artisan down
git reset --hard HEAD
git pull origin {{ $config->prod_branch }}
composer install
npm install
npm run production
php artisan migrate --force
php artisan optimize
php artisan up
@endtask
@finished
@slack($slack, '#envoy', "Deployment on prod: {$date} complete")
@endfinished