-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Feature/magento2 artifact deployment (#3317)
* adds sticky to writable recipe chgrp for all files, chmod g+rwxs for directories, chmod g+rw for files * adds artifact deployment for magento2 recipe * Updates Documentation * removes mode that has been submitted in other MR * adds divers discussion results from PR #3317 - uses contrib/cachetool - removes task build:prepare-env - comments additional_shared_files and additonal_shared_dirs - avoids invoke() * updates docs * corrects additional shared Co-authored-by: Anton Medvedev <anton@medv.io>
- Loading branch information
1 parent
492cd97
commit 2078514
Showing
2 changed files
with
130 additions
and
327 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,327 +0,0 @@ | ||
<!-- DO NOT EDIT THIS FILE! --> | ||
<!-- Instead edit recipe/magento2.php --> | ||
<!-- Then run bin/docgen --> | ||
|
||
# How to Deploy a Magento 2 Project | ||
|
||
```php | ||
require 'recipe/magento2.php'; | ||
``` | ||
|
||
[Source](/recipe/magento2.php) | ||
|
||
Deployer is a free and open source deployment tool written in PHP. | ||
It helps you to deploy your Magento 2 application to a server. | ||
It is very easy to use and has a lot of features. | ||
|
||
Three main features of Deployer are: | ||
- **Provisioning** - provision your server for you. | ||
- **Zero downtime deployment** - deploy your application without a downtime. | ||
- **Rollbacks** - rollback your application to a previous version, if something goes wrong. | ||
|
||
Additionally, Deployer has a lot of other features, like: | ||
- **Easy to use** - Deployer is very easy to use. It has a simple and intuitive syntax. | ||
- **Fast** - Deployer is very fast. It uses parallel connections to deploy your application. | ||
- **Secure** - Deployer uses SSH to connect to your server. | ||
- **Supports all major PHP frameworks** - Deployer supports all major PHP frameworks. | ||
|
||
You can read more about Deployer in [Getting Started](/docs/getting-started.md). | ||
|
||
The [deploy](#deploy) task of **Magento 2** consists of: | ||
* [deploy:prepare](/docs/recipe/common.md#deployprepare) – Prepares a new release | ||
* [deploy:info](/docs/recipe/deploy/info.md#deployinfo) – Displays info about deployment | ||
* [deploy:setup](/docs/recipe/deploy/setup.md#deploysetup) – Prepares host for deploy | ||
* [deploy:lock](/docs/recipe/deploy/lock.md#deploylock) – Locks deploy | ||
* [deploy:release](/docs/recipe/deploy/release.md#deployrelease) – Prepares release | ||
* [deploy:update_code](/docs/recipe/deploy/update_code.md#deployupdate_code) – Updates code | ||
* [deploy:shared](/docs/recipe/deploy/shared.md#deployshared) – Creates symlinks for shared files and dirs | ||
* [deploy:writable](/docs/recipe/deploy/writable.md#deploywritable) – Makes writable dirs | ||
* [deploy:vendors](/docs/recipe/deploy/vendors.md#deployvendors) – Installs vendors | ||
* [deploy:clear_paths](/docs/recipe/deploy/clear_paths.md#deployclear_paths) – Cleanup files and/or directories | ||
* [deploy:magento](/docs/recipe/magento2.md#deploymagento) – Magento2 deployment operations | ||
* [magento:build](/docs/recipe/magento2.md#magentobuild) – Magento2 build operations | ||
* [magento:compile](/docs/recipe/magento2.md#magentocompile) – Compiles magento di | ||
* [magento:deploy:assets](/docs/recipe/magento2.md#magentodeployassets) – Deploys assets | ||
* [magento:config:import](/docs/recipe/magento2.md#magentoconfigimport) – Config Import | ||
* [magento:upgrade:db](/docs/recipe/magento2.md#magentoupgradedb) – Upgrades magento database | ||
* [magento:cache:flush](/docs/recipe/magento2.md#magentocacheflush) – Flushes Magento Cache | ||
* [deploy:publish](/docs/recipe/common.md#deploypublish) – Publishes the release | ||
* [deploy:symlink](/docs/recipe/deploy/symlink.md#deploysymlink) – Creates symlink to release | ||
* [deploy:unlock](/docs/recipe/deploy/lock.md#deployunlock) – Unlocks deploy | ||
* [deploy:cleanup](/docs/recipe/deploy/cleanup.md#deploycleanup) – Cleanup old releases | ||
* [deploy:success](/docs/recipe/common.md#deploysuccess) – | ||
|
||
|
||
The magento2 recipe is based on the [common](/docs/recipe/common.md) recipe. | ||
|
||
## Configuration | ||
### static_content_locales | ||
[Source](https://github.com/deployphp/deployer/blob/master/recipe/magento2.php#L20) | ||
|
||
By default setup:static-content:deploy uses `en_US`. | ||
To change that, simply put `set('static_content_locales', 'en_US de_DE');` | ||
in you deployer script. | ||
|
||
```php title="Default value" | ||
'en_US' | ||
``` | ||
|
||
|
||
### magento_themes | ||
[Source](https://github.com/deployphp/deployer/blob/master/recipe/magento2.php#L26) | ||
|
||
You can also set the themes to run against. By default it'll deploy | ||
all themes - `add('magento_themes', ['Magento/luma', 'Magento/backend']);` | ||
|
||
```php title="Default value" | ||
[ | ||
|
||
] | ||
``` | ||
|
||
|
||
### static_content_jobs | ||
[Source](https://github.com/deployphp/deployer/blob/master/recipe/magento2.php#L34) | ||
|
||
Also set the number of conccurent jobs to run. The default is 1 | ||
Update using: `set('static_content_jobs', '1');` | ||
|
||
```php title="Default value" | ||
'1' | ||
``` | ||
|
||
|
||
### content_version | ||
[Source](https://github.com/deployphp/deployer/blob/master/recipe/magento2.php#L36) | ||
|
||
|
||
|
||
```php title="Default value" | ||
return time(); | ||
``` | ||
|
||
|
||
### shared_files | ||
[Source](https://github.com/deployphp/deployer/blob/master/recipe/magento2.php#L40) | ||
|
||
Overrides [shared_files](/docs/recipe/deploy/shared.md#shared_files) from `recipe/deploy/shared.php`. | ||
|
||
|
||
|
||
```php title="Default value" | ||
[ | ||
'app/etc/env.php', | ||
'var/.maintenance.ip', | ||
] | ||
``` | ||
|
||
|
||
### shared_dirs | ||
[Source](https://github.com/deployphp/deployer/blob/master/recipe/magento2.php#L44) | ||
|
||
Overrides [shared_dirs](/docs/recipe/deploy/shared.md#shared_dirs) from `recipe/deploy/shared.php`. | ||
|
||
|
||
|
||
```php title="Default value" | ||
[ | ||
'var/composer_home', | ||
'var/log', | ||
'var/export', | ||
'var/report', | ||
'var/import', | ||
'var/import_history', | ||
'var/session', | ||
'var/importexport', | ||
'var/backups', | ||
'var/tmp', | ||
'pub/sitemap', | ||
'pub/media', | ||
'pub/static/_cache' | ||
] | ||
``` | ||
|
||
|
||
### writable_dirs | ||
[Source](https://github.com/deployphp/deployer/blob/master/recipe/magento2.php#L59) | ||
|
||
Overrides [writable_dirs](/docs/recipe/deploy/writable.md#writable_dirs) from `recipe/deploy/writable.php`. | ||
|
||
|
||
|
||
```php title="Default value" | ||
[ | ||
'var', | ||
'pub/static', | ||
'pub/media', | ||
'generated', | ||
'var/page_cache' | ||
] | ||
``` | ||
|
||
|
||
### clear_paths | ||
[Source](https://github.com/deployphp/deployer/blob/master/recipe/magento2.php#L66) | ||
|
||
Overrides [clear_paths](/docs/recipe/deploy/clear_paths.md#clear_paths) from `recipe/deploy/clear_paths.php`. | ||
|
||
|
||
|
||
```php title="Default value" | ||
[ | ||
'generated/*', | ||
'pub/static/_cache/*', | ||
'var/generation/*', | ||
'var/cache/*', | ||
'var/page_cache/*', | ||
'var/view_preprocessed/*' | ||
] | ||
``` | ||
|
||
|
||
### magento_version | ||
[Source](https://github.com/deployphp/deployer/blob/master/recipe/magento2.php#L75) | ||
|
||
|
||
|
||
```php title="Default value" | ||
// detect version | ||
$versionOutput = run('{{bin/php}} {{release_or_current_path}}/bin/magento --version'); | ||
preg_match('/(\d+\.?)+(-p\d+)?$/', $versionOutput, $matches); | ||
return $matches[0] ?? '2.0'; | ||
``` | ||
|
||
|
||
### maintenance_mode_status_active | ||
[Source](https://github.com/deployphp/deployer/blob/master/recipe/magento2.php#L82) | ||
|
||
|
||
|
||
```php title="Default value" | ||
// detect maintenance mode active | ||
$maintenanceModeStatusOutput = run("{{bin/php}} {{release_or_current_path}}/bin/magento maintenance:status"); | ||
return strpos($maintenanceModeStatusOutput, MAINTENANCE_MODE_ACTIVE_OUTPUT_MSG) !== false; | ||
``` | ||
|
||
|
||
### enable_zerodowntime | ||
[Source](https://github.com/deployphp/deployer/blob/master/recipe/magento2.php#L89) | ||
|
||
Deploy without setting maintenance mode if possible | ||
|
||
```php title="Default value" | ||
true | ||
``` | ||
|
||
|
||
|
||
## Tasks | ||
|
||
### magento:compile | ||
[Source](https://github.com/deployphp/deployer/blob/master/recipe/magento2.php#L93) | ||
|
||
Compiles magento di. | ||
|
||
Tasks | ||
|
||
|
||
### magento:deploy:assets | ||
[Source](https://github.com/deployphp/deployer/blob/master/recipe/magento2.php#L100) | ||
|
||
Deploys assets. | ||
|
||
|
||
|
||
|
||
### magento:sync:content_version | ||
[Source](https://github.com/deployphp/deployer/blob/master/recipe/magento2.php#L113) | ||
|
||
Syncs content version. | ||
|
||
|
||
|
||
|
||
### magento:maintenance:enable | ||
[Source](https://github.com/deployphp/deployer/blob/master/recipe/magento2.php#L123) | ||
|
||
Enables maintenance mode. | ||
|
||
|
||
|
||
|
||
### magento:maintenance:disable | ||
[Source](https://github.com/deployphp/deployer/blob/master/recipe/magento2.php#L128) | ||
|
||
Disables maintenance mode. | ||
|
||
|
||
|
||
|
||
### magento:config:import | ||
[Source](https://github.com/deployphp/deployer/blob/master/recipe/magento2.php#L133) | ||
|
||
Config Import. | ||
|
||
|
||
|
||
|
||
### magento:upgrade:db | ||
[Source](https://github.com/deployphp/deployer/blob/master/recipe/magento2.php#L168) | ||
|
||
Upgrades magento database. | ||
|
||
|
||
|
||
|
||
### magento:cache:flush | ||
[Source](https://github.com/deployphp/deployer/blob/master/recipe/magento2.php#L195) | ||
|
||
Flushes Magento Cache. | ||
|
||
|
||
|
||
|
||
### deploy:magento | ||
[Source](https://github.com/deployphp/deployer/blob/master/recipe/magento2.php#L200) | ||
|
||
Magento2 deployment operations. | ||
|
||
|
||
|
||
|
||
This task is group task which contains next tasks: | ||
* [magento:build](/docs/recipe/magento2.md#magentobuild) | ||
* [magento:config:import](/docs/recipe/magento2.md#magentoconfigimport) | ||
* [magento:upgrade:db](/docs/recipe/magento2.md#magentoupgradedb) | ||
* [magento:cache:flush](/docs/recipe/magento2.md#magentocacheflush) | ||
|
||
|
||
### magento:build | ||
[Source](https://github.com/deployphp/deployer/blob/master/recipe/magento2.php#L208) | ||
|
||
Magento2 build operations. | ||
|
||
|
||
|
||
|
||
This task is group task which contains next tasks: | ||
* [magento:compile](/docs/recipe/magento2.md#magentocompile) | ||
* [magento:deploy:assets](/docs/recipe/magento2.md#magentodeployassets) | ||
|
||
|
||
### deploy | ||
[Source](https://github.com/deployphp/deployer/blob/master/recipe/magento2.php#L214) | ||
|
||
Deploys your project. | ||
|
||
|
||
|
||
|
||
This task is group task which contains next tasks: | ||
* [deploy:prepare](/docs/recipe/common.md#deployprepare) | ||
* [deploy:vendors](/docs/recipe/deploy/vendors.md#deployvendors) | ||
* [deploy:clear_paths](/docs/recipe/deploy/clear_paths.md#deployclear_paths) | ||
* [deploy:magento](/docs/recipe/magento2.md#deploymagento) | ||
* [deploy:publish](/docs/recipe/common.md#deploypublish) | ||
|
||
|
||
Oops, something went wrong.