Skip to content

Commit

Permalink
Feature/magento2 artifact deployment (#3317)
Browse files Browse the repository at this point in the history
* 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
wilfriedwolf and antonmedv authored Jan 8, 2023
1 parent 492cd97 commit 2078514
Show file tree
Hide file tree
Showing 2 changed files with 130 additions and 327 deletions.
327 changes: 0 additions & 327 deletions docs/recipe/magento2.md
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)


Loading

0 comments on commit 2078514

Please sign in to comment.