Latest release: v2.0.0

Deployer Extension

Content

Usage

extensions:
    deployer: Contributte\Deployer\DI\DeployerExtension
1
2

Configuration

Detailed configuration is described here ftp-deployment.

parameters:
    deploy:
        protocol: ftp # ftp|ftps
        user: user1
        password: mysecretpwd
        scheme: example.com # example.com/www     

deployer:
    config:
        mode: run
        logFile: %appDir%/log/deployer.log
        tempDir: %appDir%/temp
        colors: off
        
    # User specific variables
    userdata: 

    # Plugins specification (see more in PLUGINS.md)
    plugins:
        
    # Web sections
    sections:
        web1:
            remote: %deploy.protocol%://%deploy.user%:%deploy.password%@%deploy.scheme%
            local: %wwwDir%
            testMode: false

            allowdelete: on
            passiveMode: on
            preprocess: off

            ignore:
                # Common
                - .git*
                - .idea*
                - .bowerrc
                - composer.*
                - bower.json
                - gulpfile.js
                - package.json

                # Application
                - /app/config/config.local.neon
                - /bin
                - /tests
                - /node_modules
                - /log/*
                - "!/log/.htaccess"
                - /temp/*
                - "!/temp/.htaccess"

                # Public
                - /www/*.scss
                - /www/*.less
                - /www/temp
                - /www/uploaded
                - /www/stats

            before:
                #- [@\TestBeforeListener, onBefore]
            after:
                #- [@\TestAfterListener, onAfter]

            purge:
                - temp/cache
                - temp/myfolder
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66

More webs <=> more sections

deployer:
    section:
        example.com:
            ...
        test.cz:
            ...
1
2
3
4
5
6

Listeners

You can register service which implement AfterListener or BeforeListener.

Example you can find here.

Or in plugins section here.

Deploy

See example scripts here.

Automatic

Config is automatic passed via extension.

# Create Deploy Manager
$dm = $container->getByType('Minetro\Deployer\Manager');
$dm->deploy();
1
2
3

Manual

You have to create your configuration by yourself.

# Create config
$config = new Config();
$config->setLogFile(..);
$config->setMode(..);

$section = new Section();
$section->setName(..);
$config->addSection($section);
1
2
3
4
5
6
7
8
# Create Deploy Manager
$dm = $container->getByType('Minetro\Deployer\Manager');
$dm->manualDeploy($config);
1
2
3
# Inject Deploy Manager
use Contributte\Deployer;

/** @var Deployer\Manager @inject */
public $dm;

public function actionDeploy() 
{
    $this->dm->manulDeploy($config);
}
1
2
3
4
5
6
7
8
9
10

Prepared deploy script (deploy.php & deploy)

Place it by yourself (for example root/deploy.php). Be careful about local and tempDir, there depend on location.

require __DIR__ . '/vendor/autoload.php';

# Configurator
$configurator = new Nette\Configurator;
$configurator->setDebugMode(TRUE);
$configurator->enableDebugger(__DIR__ . '/../log');
$configurator->setTempDirectory(__DIR__ . '/../temp');
$configurator->createRobotLoader()
    ->addDirectory(__DIR__)
    ->register();

# Configs
$configurator->addConfig(__DIR__ . '/config/config.neon');

# Create DI Container
$container = $configurator->createContainer();

# Create Deploy Manager
$dm = $container->getByType('Minetro\Deployer\Manager');
$dm->deploy();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

Plugins

MaintenanceListener

This is prepared listener that help make maintenance mode easier.

Plugin has two sections rewrite and rename.

You have to register to before and to after also (!).

Rewrite

Before: backup origin file, rename destination file to source file

After: revert rewriting

deployer:
    plugins:
    
        maintenance:
            rewrite:
                - [www/index.php, www/index.maintenance]
1
2
3
4
5
6

Rename

Before: rename origin file to destination file

After: revert renaming

deployer:
    plugins:
    
        maintenance:
            rename:
                - [www/.maintenance.php, www/maintenance.php]
1
2
3
4
5
6

You can combine rewriting and renaming together.

ComposerInstallListener

This is prepared listener that runs command:

composer install --no-dev --prefer-dist --optimize-autoloader -d $DIR
1

Parameters

  • $DIR is section.local

ComposerUpdateListener

This is prepared listener that runs command:

composer update --no-dev --prefer-dist --optimize-autoloader -d $DIR
1

Parameters

  • $DIR is section.local