script envoy

This commit is contained in:
2020-10-03 09:58:23 +02:00
parent 1c772fdc6c
commit 5c2e766f3b
5 changed files with 139 additions and 9 deletions

1
.idea/php.xml generated
View File

@@ -124,6 +124,7 @@
<path value="$PROJECT_DIR$/vendor/laminas/laminas-zendframework-bridge" /> <path value="$PROJECT_DIR$/vendor/laminas/laminas-zendframework-bridge" />
<path value="$PROJECT_DIR$/vendor/laminas/laminas-diactoros" /> <path value="$PROJECT_DIR$/vendor/laminas/laminas-diactoros" />
<path value="$PROJECT_DIR$/vendor/laravel/legacy-factories" /> <path value="$PROJECT_DIR$/vendor/laravel/legacy-factories" />
<path value="$PROJECT_DIR$/vendor/laravel/slack-notification-channel" />
</include_path> </include_path>
</component> </component>
<component name="PhpProjectSharedConfiguration" php_language_level="7.2" /> <component name="PhpProjectSharedConfiguration" php_language_level="7.2" />

1
.idea/portal.iml generated
View File

@@ -32,6 +32,7 @@
<excludeFolder url="file://$MODULE_DIR$/vendor/laravel/framework" /> <excludeFolder url="file://$MODULE_DIR$/vendor/laravel/framework" />
<excludeFolder url="file://$MODULE_DIR$/vendor/laravel/legacy-factories" /> <excludeFolder url="file://$MODULE_DIR$/vendor/laravel/legacy-factories" />
<excludeFolder url="file://$MODULE_DIR$/vendor/laravel/passport" /> <excludeFolder url="file://$MODULE_DIR$/vendor/laravel/passport" />
<excludeFolder url="file://$MODULE_DIR$/vendor/laravel/slack-notification-channel" />
<excludeFolder url="file://$MODULE_DIR$/vendor/laravel/tinker" /> <excludeFolder url="file://$MODULE_DIR$/vendor/laravel/tinker" />
<excludeFolder url="file://$MODULE_DIR$/vendor/laravel/ui" /> <excludeFolder url="file://$MODULE_DIR$/vendor/laravel/ui" />
<excludeFolder url="file://$MODULE_DIR$/vendor/lcobucci/jwt" /> <excludeFolder url="file://$MODULE_DIR$/vendor/lcobucci/jwt" />

View File

@@ -1 +1,70 @@
<?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

View File

@@ -16,8 +16,10 @@
"laravel/framework": "^8.0", "laravel/framework": "^8.0",
"laravel/legacy-factories": "^1.0", "laravel/legacy-factories": "^1.0",
"laravel/passport": "^10.0", "laravel/passport": "^10.0",
"laravel/slack-notification-channel": "^2.2",
"laravel/tinker": "^2.0", "laravel/tinker": "^2.0",
"laravel/ui": "^2.0" "laravel/ui": "^2.0",
"vlucas/phpdotenv": "^5.2"
}, },
"require-dev": { "require-dev": {
"facade/ignition": "^2.3.6", "facade/ignition": "^2.3.6",

71
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "1a08ea37954efebb7e59951b5d396e76", "content-hash": "51b55f3b06042805d19c911a3a4456a7",
"packages": [ "packages": [
{ {
"name": "asm89/stack-cors", "name": "asm89/stack-cors",
@@ -1285,6 +1285,63 @@
], ],
"time": "2020-09-08T15:27:48+00:00" "time": "2020-09-08T15:27:48+00:00"
}, },
{
"name": "laravel/slack-notification-channel",
"version": "v2.2.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/slack-notification-channel.git",
"reference": "98e0fe5c8dda645e6af914285af7b742e167462a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/slack-notification-channel/zipball/98e0fe5c8dda645e6af914285af7b742e167462a",
"reference": "98e0fe5c8dda645e6af914285af7b742e167462a",
"shasum": ""
},
"require": {
"guzzlehttp/guzzle": "^6.0|^7.0",
"illuminate/notifications": "~5.8.0|^6.0|^7.0|^8.0",
"php": "^7.1.3"
},
"require-dev": {
"mockery/mockery": "^1.0",
"phpunit/phpunit": "^7.0|^8.0|^9.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.x-dev"
},
"laravel": {
"providers": [
"Illuminate\\Notifications\\SlackChannelServiceProvider"
]
}
},
"autoload": {
"psr-4": {
"Illuminate\\Notifications\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Taylor Otwell",
"email": "taylor@laravel.com"
}
],
"description": "Slack Notification Channel for laravel.",
"keywords": [
"laravel",
"notifications",
"slack"
],
"time": "2020-08-25T18:21:34+00:00"
},
{ {
"name": "laravel/tinker", "name": "laravel/tinker",
"version": "v2.4.2", "version": "v2.4.2",
@@ -5409,16 +5466,16 @@
}, },
{ {
"name": "vlucas/phpdotenv", "name": "vlucas/phpdotenv",
"version": "v5.1.0", "version": "v5.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/vlucas/phpdotenv.git", "url": "https://github.com/vlucas/phpdotenv.git",
"reference": "448c76d7a9e30c341ff5bc367a923af74ae18467" "reference": "fba64139db67123c7a57072e5f8d3db10d160b66"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/448c76d7a9e30c341ff5bc367a923af74ae18467", "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/fba64139db67123c7a57072e5f8d3db10d160b66",
"reference": "448c76d7a9e30c341ff5bc367a923af74ae18467", "reference": "fba64139db67123c7a57072e5f8d3db10d160b66",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -5441,7 +5498,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "5.1-dev" "dev-master": "5.2-dev"
} }
}, },
"autoload": { "autoload": {
@@ -5481,7 +5538,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2020-07-14T19:26:25+00:00" "time": "2020-09-14T15:57:31+00:00"
}, },
{ {
"name": "voku/portable-ascii", "name": "voku/portable-ascii",