Giter VIP home page Giter VIP logo

magento2-deployer-plus's Introduction

Magento 2 Deployer Plus

Build Status

  • Reliable fully-automated deployments tool for Magento 2.
  • Zero downtime deployments on Magento versions >= 2.2
  • Automating your deployments is as easy as defining the servers where you want to deploy to.

Motivation

This project aims to offer a common solution for fully-automated deployments on all versions of Magento 2. This tool uses the well known Deployer and adds specific recipes for each Magento 2 version.

Important Features

  • Deployer code syntax
  • Super easy setup
  • Deploy to multiple servers
  • Zero Downtime (only Magento >= 2.2)
  • Build and Deploy artifacts (only Magento >= 2.2)
  • Secure rollbacks (only Magento >= 2.2)

Installation

composer require "jalogut/magento2-deployer-plus"

Setup

Magento >= 2.1

cp <vendor_dir>/jalogut/magento2-deployer-plus/deploy.php.sample_2_1 deploy.php

Magento >= 2.2

cp <vendor_dir>/jalogut/magento2-deployer-plus/deploy.php.sample_2_2 deploy.php

Magento >= 2.2.5

cp <vendor_dir>/jalogut/magento2-deployer-plus/deploy.php.sample_2_2_5 deploy.php

Usage

Git deploys:

<bin_dir>/dep deploy [<stage>]

Build artifact deploys: (only Magento >= 2.2)

<bin_dir>/dep build
<bin_dir>/dep deploy-artifact [<stage>]

Disclaimer

Build command

Build command can only be used if config propagation is properly configured. See Magento DevDocs:

Also check app:config:dump issue and workaround here:

Troubleshooting

Js translations missing (magento versions >=2.1.3 <2.2.1)

  • Problem: Known Magento issue when executing setup:static-content:deploy for several languages.

  • Github Issues:

  • Solution: Until that gets fixed in 2.2.1, the only workaround is to execute setup:static-content:deploy individually for each language:

     // deploy.php
     task('files:static_assets', '
     	{{bin/php}} {{magento_bin}} setup:static-content:deploy en_US {{static_deploy_options}}
     	{{bin/php}} {{magento_bin}} setup:static-content:deploy de_CH {{static_deploy_options}}
     	{{bin/php}} {{magento_bin}} setup:static-content:deploy fr_FR {{static_deploy_options}}
     ');

Compilation error

  • Solution: Increase php memory_limit configuration to 728M o 1024M

Static deploy error when setting a new template (if config propagation is not used)

  • Problems:

    • [LogicException] Unable to load theme by specified key: 'Template'
    • @variable is undefined in file
  • Reason: If a new template is set, running setup:upgrade is required before executing setup:static-content:deploy

  • Solution: Skip setup:static-content:deploy first time you deploy the new template:

    1. Temporary disable task files:static_assets

      // deploy.php
      task('files:static_assets')->onRoles('Skip');
      
    2. Perform a new release

    3. Enable back files:static_assets on your deploy.php file

      • Remove task('files:static_assets')->onRoles('Skip');
    4. Manually execute files:static_assets

      <bin_dir>/dep files:static_assets [<stage>]
      

    After that, future deployments will work without issues

Prerequisites

  • PHP >= 7.0.8
  • MAGENTO >= 2.1

ChangeLog

CHANGELOG.md

Developers

Licence

GNU General Public License, version 3 (GPLv3)

Copyright

(c) Juan Alonso [email protected]

magento2-deployer-plus's People

Contributors

jalogut avatar osrecio avatar renttek avatar danielozano avatar schmengler avatar rikwillems avatar erfanimani avatar julienanquetil avatar mzeis avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.