Spesso durante lo sviluppo e la manutenzione di un progetto siamo costretti a svolgere attivit ripetitive o noiose (dallesecuzione di un task alla replicazione e aggiornamento del sistema). Per risolvere alcuni di questi problemi proveremo ad usare Zaratan, un comodo strumento basato su Docker per installare tutte le componenti necessarie al funzionamento di Drupal, e Robo, un task runner scritto in PHP in grado di eseguire sia comandi Drush che azioni sul filesystem, sul database, ecc...
1 of 31
Download to read offline
More Related Content
[Luca Cracco] - DevOps: strumenti di automazione per Drupal8
4. CHE COS' ROBO
Robo 竪 un
E' scritto in PHP con una programmazione orientata
agli oggetti
Ha a disposizione moltissimi task/comandi per lo
sviluppo, test, distribuzione, ecc..
task runner
5. TASK RUNNERS
Sono tools che permetto di automatizzare le operazioni
pi湛 riccorenti; sia semplici operazioni di mini鍖cazione del
css sia compilazione e pubblicazione di codice
Tra i pi湛 conosciuti troviamo , , .. ma
anche , , ...
Buildbot Jenkins
Grunt Gulp
7. USARE ROBO PER
Eseguire comandi
Lanciare test
Automatizzare le opereazioni pi湛 comuni
Eseguire attivit parallele
Percepire cambiamenti sul 鍖lesystem
Inizializzare ambienti e progetti
8. ..PERCH ROBO?
E' scritto in PHP ad oggetti
Supporto per i comandi: robo list
Comandi con convalida, colori ANSI, ecc..
Si pu嘆 installare con Composer per il progetto
Vi sono un sacco di task gi pronti
10. INSTALLAZIONE
PHAR
o scaricandolo via HTTPS da
Oppure installandolo in /usr/bin
wgethttp://robo.li/robo.phar
GitHub releases
sudochmod+xrobo.phar&&mvrobo.phar/usr/bin/robo
11. PER INIZIARE...
Creiamo il nostro Robo le.php con
Ed ecco il 鍖le:
cdmio_progetto
roboinit
/**
*Thisisproject'sconsolecommands
*configurationforRobotaskrunner.
*
*@seehttp://robo.li/
*/
classRoboFileextendsRoboTasks
{
//definepublicmethodsascommands
}
15. ROBO TASKS
Base Tasks, FileSystem Tasks, File Tasks, Composer Tasks,
VCS Tasks, Development Tasks, Assets Tasks, Archive
Tasks, SSH, Rsync Tasks, Testing Tasks, NPM Tasks, Bower
Tasks, Gulp Tasks, Docker Tasks, ApiGen Tasks, e molti
altri in Packagist.org
16. INCLUDERE UN TASK
Aggiungerlo al progetto
Richiamarlo nel RoboFile
composerrequireboedah/robo足drush
classRoboFileextendsRoboTasks{
useBoedahRoboTaskDrushloadTasks余
publicfunctiontest(){
//...
}
}
20. TASK VS STACK
Le classi Stack contengono un insieme di task da eseguire
uno dopo l'altro. Inoltre pu嘆 essere con鍖gurato per
bloccarsi al primo errore che incontra senza proseguire
con gli altri task.
$this足>stopOnFail(true)余
21. STACK VS COLLECTION
Robo o鍖re delle collection di task che permettono il
rilevamento degli errori e il recupero/rollback. Se uno dei
task della collection va in errore, l'operazione viene
interrotta; attivit di rollback pu嘆 essere quindi eseguita
per ripristinare il sistema allo stato originale.
22. ROBOFILES MULTIPLI
E' possibile fornire il maggior numero di classi di comandi
(Robo鍖le) direttamente al costruttore RoboRunner
$commandClasses=[
MyProjectCommandsBuildCommands::class,
MyProjectCommandsDeployCommands::class
]余
$statusCode=RoboRobo::run(
$_SERVER['argv'],
$commandClasses,
'MyAppName',
'0.0.0足alpha0'
)余
exit($statusCode)余