<?php
namespace Deployer;

require 'recipe/symfony4.php';

// Project name
set('application', 'beta.pflaenz.li');

// Project repository
set('repository', 'ssh://git@git.thisfro.ch:222/thisfro/pflaenz.li.git');

// [Optional] Allocate tty for git clone. Default value is false.
set('git_tty', true); 

// Shared files/dirs between deploys 
add('shared_files', []);
add('shared_dirs', []);

// Writable dirs by web server 
add('writable_dirs', []);

// Set composer options
set('composer_options', '{{composer_action}} --verbose --prefer-dist --no-progress --no-interaction --optimize-autoloader --no-scripts');

// Hosts

host('beta.xn--pflnz-ira.li')
    ->user('lq5xi_thisfro')
    ->set('deploy_path', '~/sites/{{application}}')
    ->set('http_user', 'uid153060');

// Tasks

task('upload:build', function() {
    upload('public/build/', '{{release_path}}/public/build/');
});

// Build yarn locally
task('deploy:build:assets', function (): void {
    run('yarn install');
    run('yarn encore production');
})->local()->desc('Install front-end assets');

before('deploy:symlink', 'deploy:build:assets');

// Upload assets
task('upload:assets', function (): void {
    upload(__DIR__.'/public/build/', '{{release_path}}/public/build');
});

task('upload:build', function() {
    upload("public/build/", '{{release_path}}/public/build/');
});

task('upload:build', function() {
    upload("public/build/", '{{release_path}}/public/build/');
});

after('deploy:build:assets', 'upload:assets');

// [Optional] if deploy fails automatically unlock.
after('deploy:failed', 'deploy:unlock');

before('deploy:symlink', 'database:migrate');