ualibraries /
ual-payments
| 1 | <?php |
||
| 2 | namespace Deployer; |
||
| 3 | |||
| 4 | require 'recipe/symfony4.php'; |
||
| 5 | require 'vendor/deployer/recipes/recipe/slack.php'; |
||
| 6 | |||
| 7 | require_once __DIR__.'/vendor/autoload.php'; |
||
| 8 | (new \Symfony\Component\Dotenv\Dotenv())->load('.env'); |
||
| 9 | |||
| 10 | // Project name |
||
| 11 | set('application', 'ual-payments'); |
||
| 12 | |||
| 13 | // Project repository |
||
| 14 | set('repository', 'ssh://[email protected]/ualibraries/ual-payments.git'); |
||
| 15 | |||
| 16 | // [Optional] Allocate tty for git clone. Default value is false. |
||
| 17 | set('git_tty', true); |
||
| 18 | |||
| 19 | // Keep last 30 releases |
||
| 20 | set('keep_releases', 30); |
||
| 21 | |||
| 22 | // Default branch to deploy from |
||
| 23 | set('branch', 'master'); |
||
| 24 | |||
| 25 | // Shared files/dirs between deploys |
||
| 26 | set('shared_files', ['.env']); |
||
| 27 | set('shared_dirs', ['var/log', 'var/sessions', 'backups']); |
||
| 28 | // Writable dirs by web server |
||
| 29 | set('writable_dirs', ['var']); |
||
| 30 | |||
| 31 | // We're not allowing anonymous stats |
||
| 32 | set('allow_anonymous_stats', false); |
||
| 33 | |||
| 34 | set('slack_webhook', getenv('SLACK_WEBHOOK')); |
||
| 35 | |||
| 36 | // Hosts |
||
| 37 | host('production') |
||
| 38 | ->user('deploy') |
||
| 39 | ->hostname('payments.library.arizona.edu') |
||
| 40 | ->set('deploy_path', '/var/www') |
||
| 41 | ->stage('prd'); |
||
| 42 | |||
| 43 | host('stage') |
||
| 44 | ->user('deploy') |
||
| 45 | ->hostname('pay-stg.library.arizona.edu') |
||
| 46 | ->set('deploy_path', '/var/www') |
||
| 47 | ->stage('stg'); |
||
| 48 | |||
| 49 | // Tasks |
||
| 50 | task('assets-build', function () { |
||
|
0 ignored issues
–
show
Bug
introduced
by
Loading history...
|
|||
| 51 | run('cd {{release_path}} && composer assets:build'); |
||
| 52 | }); |
||
| 53 | |||
| 54 | // Backup remote database |
||
| 55 | task('backup-remote-db', function () { |
||
| 56 | cd('{{release_path}}'); |
||
| 57 | run('source .env && mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME | gzip > ./backups/$DB_NAME-`date +%s`.sql.gz'); |
||
| 58 | // Remove database backup files older than 30 days |
||
| 59 | run('find ./backups -name *sql.gz -mtime 30 -type f -delete'); |
||
| 60 | }); |
||
| 61 | |||
| 62 | desc('Deploy project'); |
||
| 63 | task('deploy', [ |
||
| 64 | 'deploy:info', |
||
| 65 | 'deploy:prepare', |
||
| 66 | 'deploy:lock', |
||
| 67 | 'deploy:release', |
||
| 68 | 'deploy:update_code', |
||
| 69 | 'deploy:shared', |
||
| 70 | 'deploy:writable', |
||
| 71 | 'deploy:vendors', |
||
| 72 | 'deploy:cache:clear', |
||
| 73 | 'deploy:cache:warmup', |
||
| 74 | 'backup-remote-db', |
||
| 75 | 'database:migrate', |
||
| 76 | 'assets-build', |
||
| 77 | 'deploy:symlink', |
||
| 78 | 'deploy:unlock', |
||
| 79 | 'cleanup', |
||
| 80 | ]); |
||
| 81 | |||
| 82 | // [Optional] if deploy fails automatically unlock. |
||
| 83 | after('deploy:failed', 'deploy:unlock'); |
||
| 84 | |||
| 85 | // Slack notifications |
||
| 86 | before('deploy', 'slack:notify'); |
||
| 87 | after('deploy', 'slack:notify:success'); |
||
| 88 | after('deploy:failed', 'slack:notify:failure'); |
||
| 89 |