magemojo / deployer-example
Webscale Stratus Deployer Recipe Addon
Requires
- deployer/dist: ^7.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.11
- nikic/php-parser: ^3.1
- phpmd/phpmd: ^2.6
- phpro/grumphp: ^0.14.0
- squizlabs/php_codesniffer: ^3.2
This package is auto-updated.
Last update: 2024-10-25 18:07:27 UTC
README
Webscale Stratus Deployment example repo using Deployer.org application
What is Deployer?
A deployment tool written in PHP with support for popular frameworks out of the box. Deployer used by hundreds thousands of projects around the world, performing more than a million of deploys each month. Deployer comes with more than 50 ready to use recipes for frameworks and third-party services.
This repository is created to help you to adjust your Deployer.org deployment processes and use it to deploy application on Webscale Stratus platform.
Basically to get started first we need to install Deployer application as per https://deployer.org/docs/7.x/installation guidelines.
curl -LO https://deployer.org/deployer.phar
mv deployer.phar /usr/local/bin/dep
chmod +x /usr/local/bin/dep
Now, we can cd into the project and run following command:
dep init
Deployer will ask you a few question and after finishing you will have a deploy.php or deploy.yaml file. This is our deployment recipe. It contains hosts, tasks and requires other recipes. All framework recipes that come with Deployer are based on the common recipe. https://deployer.org/docs/7.x/recipe/common
Deployer.org already covered Magento 2 recpie and it can be downloaded/reviewed here: https://github.com/deployphp/deployer/blob/master/recipe/magento2.php
How to install this package:
composer require magemojo/deployer-example --dev
How to use After install it, you can add the line below after the namespace and run dep to check:
// Webscale Stratus Recipe
require __DIR__ . '/vendor/magemojo/deployer-example/stratus.php';
This recipe when installed automatically will clean all caches after the deploy success, but if you want to restart all services, add these into the bottom:
// Webscale Stratus start/stop/restart services
before('deploy', 'stratus:cron:stop');
after('deploy', 'stratus:cron:start');
after('success', 'stratus:zdd:init');
after('success', 'stratus:zdd:switch');
// Webscale Stratus clean all caches
after('success', 'stratus:cloudfront:clear');
after('success', 'stratus:varnish:clear');
after('success', 'stratus:redis:clear');
after('success', 'stratus:cache:clear');
For example:
<?php
namespace Deployer;
// Webscale Stratus Recipe
require __DIR__ . '/vendor/magemojo/deployer-example/stratus.php';
// Project
set('application', 'My Project Name');
set('repository', 'git@bitbucket.org:mycompany/my-project.git');
set('default_stage', 'production');
// Project Configurations
host('production')
->hostname('iuse.magemojo.com')
->user('my-user')
->port(22)
->set('deploy_path', '/home/my-project-folder')
->set('branch', 'master')
->stage('production');
// Webscale Stratus restart services
after('success', 'stratus:zdd:init');
after('success', 'stratus:zdd:switch');
// Webscale Stratus clean all caches
after('success', 'stratus:cloudfront:clear');
after('success', 'stratus:varnish:clear');
after('success', 'stratus:redis:clear');
after('success', 'stratus:cache:clear');
Summary of all available commands:
Useful commands for deploy.php file:
// Webscale Stratus autoscaling requires absolute symlinks
set('use_relative_symlink', false);