< Deployer

Kezdés

Szerző: Sallai András

Copyright © Sallai András, 2019

CC Attribution-Share Alike 4.0 International

Web: http://szit.hu

Beszerzés

Letöltjük a deployer.phar állományt, majd áthelyezzük egy olyan helyre, ahol útvonalban lesz, dep néven; végül futtatási jogot adunk rá.

curl -LO https://deployer.org/deployer.phar mv deployer.phar /usr/local/bin/dep chmod +x /usr/local/bin/dep

Ezek után használhatjuk a dep parancsot.

A dep parancsot önmagában vagy a dep list alparanccsal kiírja milyen lehetőségeink vannak.

Webhely:

https://deployer.org/ (2022)

Helló Világ

Készítenünk kell egy Deployer névteret és hivatkozni kell a recipe/common.php-re. Kezdetnek készítsünk egy feladatot teszt néven:

Készítsünk egy projekt könyvtárat, majd lépjünk be. A projekt gyökérkönyvtárában hozzuk létre a deploy.php állományt a következő tartalommal:

<?php namespace Deployer; require 'recipe/common.php'; task('teszt', function() { writeln('Helló Világ'); });

Futtassuk:

dep teszt

A futtatás eredménye:

➤ Executing task test
Helló Világ
✔ Ok

Az így létrehozott deploy.php állományt nevezzük receptnek.

Aktuális könyvtár

Készítsünk egy újabb feladatot, amely az aktuális könyvtár útvonalát kiírja. Fejlesszük tovább a deploy.php fájlt:

namespace Deployer; require 'recipe/common.php'; task('teszt', function() { writeln('Helló Világ'); }); task('pwd', function() { $res = run('pwd'); writeln("Az aktuális könyvtár: $res"); });

Futtassuk a feladatot:

dep pwd

A futtatás eredménye:

➤ Executing task pwd
Aktuális könyvtár: /home/janos/Projektek/projekt01
✔ Ok

A pwd parancs a helyi gépen fut le.

Kezdő recept

A dep init parancs létrehoz egy általános kezdő recptet:

dep init

<?php namespace Deployer; require 'recipe/common.php'; // Project name set('application', 'my_project'); // Project repository set('repository', ''); // [Optional] Allocate tty for git clone. Default value is false. set('git_tty', true); // Shared files/dirs between deploys set('shared_files', []); set('shared_dirs', []); // Writable dirs by web server set('writable_dirs', []); // Hosts host('project.com') ->set('deploy_path', '~/{{application}}'); // Tasks desc('Deploy your project'); task('deploy', [ 'deploy:info', 'deploy:prepare', 'deploy:lock', 'deploy:release', 'deploy:update_code', 'deploy:shared', 'deploy:writable', 'deploy:vendors', 'deploy:clear_paths', 'deploy:symlink', 'deploy:unlock', 'cleanup', 'success' ]); // [Optional] If deploy fails automatically unlock. after('deploy:failed', 'deploy:unlock');