71 lines
1.9 KiB
PHP
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
|