Skip to content
Snippets Groups Projects
deploy.php 1.45 KiB
Newer Older

declare(strict_types=1);

namespace Deployer;

import('recipe/common.php');
import('contrib/rsync.php');
$PROJECT_ROOT = dirname(__DIR__).'/toolkit-showcase';
$RSYNC_CONFIG = [
    'exclude' => [],
    'exclude-file' => false,
    'include' => [],
    'include-file' => false,
    'filter' => [],
    'filter-file' => false,
    'filter-perdir' => false,
    'flags' => 'rz',
    'options' => ['delete', 'links'],
    'timeout' => 60,
];

// Hosts
host('demo')
    ->set('labels', ['stage' => 'demo'])
    ->setHostname('mw@vpu01-demo.tugraz.at')
    ->set('rsync', $RSYNC_CONFIG)
    ->set('rsync_src', $PROJECT_ROOT.'/dist')
    ->set('deploy_path', '/home/mw/demo/deploy/apps/demo');

host('development')
    ->set('labels', ['stage' => 'development'])
    ->setHostname('mw@mw01-dev.tugraz.at')
    ->set('rsync', $RSYNC_CONFIG)
    ->set('rsync_src', $PROJECT_ROOT.'/dist')
    ->set('deploy_path', '/home/mw/dev/deploy/apps/demo');

task('build', function () use ($PROJECT_ROOT) {
    $options = ['cwd' => $PROJECT_ROOT];
    $stage = get('labels')['stage'];
    runLocally("yarn install --frozen-lockfile", $options);
    runLocally("APP_ENV=$stage yarn run build", $options);

// Deploy task
task('deploy', [
    'deploy:info',
    'build',
    'deploy:setup',
    'deploy:lock',
    'deploy:release',
    'rsync',
    'deploy:shared',
    'deploy:symlink',
    'deploy:unlock',
    'deploy:cleanup',
    'deploy:success',
]);
after('deploy:failed', 'deploy:unlock');