guillermopajares
6/23/2019 - 3:09 AM

Deploying WordPress with Deployer 4

Deploying WordPress with Deployer 4

<?php
namespace Deployer;

require 'recipe/common.php';

set('ssh_type', 'native');
set('ssh_multiplexing', true);

// Set configurations
set('repository', 'git@github.com:user/repo.git');
set('shared_files', ['public/wp-config.php']);
set('shared_dirs', ['public/wp-content/uploads']);
set('writable_dirs', []);
set('keep_releases', 3);
set('composer_command', 'composer');

//Defaults for all servers
set('timezone', 'Europe/Stockholm');
set('branch', 'master');

// Configure servers
server('production', 'example.com')
  ->user('root')
  ->identityFile()
  ->forwardAgent()
  ->set('deploy_path', '/var/www/example.com/deployer')
  ->set('environment', 'production');

/**
 * Chown files to correct user
 */
task('deploy:chown', function () {
  run('chown -R www-data:www-data ' . get('deploy_path'));
});

/**
 * Restart php-fpm
 */
task('deploy:restart-php', function () {
  run('ee stack restart --php7');
});

/**
 * Restart Memcached
 */
task('deploy:restart-memcached', function () {
  run('service memcached restart');
});

/**
 * Write current Git commit hash to version.txt of current release
 */
task('deploy:write_version', function () {
  cd(get('deploy_path') . '/current/public/');
  run('git rev-parse HEAD > version.txt');
});

/**
 * Display current Git commit hash
 */
task('info:version', function() {

  cd(get('deploy_path') . '/current');
  $version = run('git rev-parse HEAD')->getOutput();

  write("Currently deployed commit: <info>$version</info>");
});

/**
 * Main task
 */
task('deploy', [
    'deploy:prepare',
    'deploy:release',
    'deploy:update_code',
    'deploy:shared',
    'deploy:writable',
    'deploy:vendors',
	  'deploy:symlink',
    'deploy:write_version',
    'deploy:chown',
    //'deploy:restart-php',
    //'deploy:restart-memcached',
    'cleanup',
    'info:version',
	'deploy:warm_cache'
])->desc('Deploy your project');

after('deploy', 'success');