SlideShare a Scribd company logo
Introducing DeploYii 
v 0.5 
http://www.deployii.com Giovanni Derks: http://derks.me.uk
What is it? 
DeploYii is a PHP task runner and deployment 
solution designed to be easy to use and 
flexible. 
It can be used for very simple tasks or for more 
complex scenarios depending on your needs.
What is it? 
● based on Yii 2 console app. (PHP 5.4+) 
● friendly, array based, php build script 
● extensible (create your own script commands & recipes. 
Per project or globally) 
● interactive / non-interactive modes 
● configurable build script (common + per environment) 
● override configuration defaults via command line 
options 
● in early stage development but with ambitious goals
Main features 
(as of version 0.5) 
● print out text and parameters or require user input 
● save / load information from json files 
● if / else statement based on PHP expression 
● script and home folder version compatibility check 
● create, copy, rename, delete folders 
● copy, rename, delete file 
● set files and folders permissions 
● archive/compress files and folders 
● replace in files 
● SFTP support (put, get, mkdir, chmod, mv, rm, rmdir, ...) 
● execute shell commands (locally or over SSH)
build.php 
return [ 
'deployiiVersion' => '0.5.0', 
'require' => [], 
'params' => [ 
'username' => 'world', 
], 
'targets' => [ 
'default' => [ 
['out', 'Hello {{username}}!'], 
], 
], 
];
build.php 
return [ 
'deployiiVersion' => '0.5.0', 
'require' => [], 
'params' => [ 
'username' => 'world', 
], 
'targets' => [ 
'default' => [ 
['out', 'Hello {{username}}!'], 
], 
], 
]; 
the “deployiiVersion” string contains the latest 
DeploYii version number the build script has 
been created for. 
If, in a newer version, some changes break 
the backward compatibility, DeploYii will 
prompt the user to update the build script.
build.php 
return [ 
'deployiiVersion' => '0.5.0', 
'require' => [], 
'params' => [ 
'username' => 'world', 
], 
'targets' => [ 
'default' => [ 
['out', 'Hello {{username}}!'], 
], 
], 
]; 
Using the require array you can require / pre-load 
some script commands or recipes. 
Pre-loading a command allow it to check its 
requirements, define a new set of parameters 
and attach helper functions to the main 
controller. 
Requirements are recursive so a build script 
can include a recipe which can include 
another recipe and a command, etc.
build.php 
return [ 
'deployiiVersion' => '0.5.0', 
'require' => [], 
'params' => [ 
'username' => 'world', 
], 
'targets' => [ 
'default' => [ 
['out', 'Hello {{username}}!'], 
], 
], 
]; 
The params array contain the default values 
of the build parameters. 
The build parameters are used during the 
execution of the build script and can be 
accessed using placeholders in the format of 
{{placeholder}} and in other commands 
statements, such as the if/else. 
Build parameters can be overwritten by the command line, 
specifying them as a command line options (-- 
username=mike) while the build configuration is stored in 
the Build script configuration
build.php 
return [ 
'deployiiVersion' => '0.5.0', 
'require' => [], 
'params' => [ 
'username' => 'world', 
], 
'targets' => [ 
'default' => [ 
['out', 'Hello {{username}}!'], 
], 
], 
]; 
The targets array let's you define your build 
script targets. 
You can also call a target or a recipe from a target by using 
the "target" or the "recipe" command: 
call another target: 
['target', 'clean'] 
execute a recipe: 
['recipe', 'test', 'clean']
Command line commands 
$ deployii help 
The following commands are available: 
- fetch Fetch the requested project from git and run the build. 
- help Provides help information about console commands. 
- init Initialise a new build.php script from the build.tpl.php 
template file. 
- migrate Manages application migrations. (Yii 2 built-in feature) 
- run Run the build; if no target is specified, the "default" 
one will be ran.
The DeploYii home folder 
During the first execution, the home folder is created in ~/.deployii 
This folder contains: 
● the VERSION file used by the version manager to ensure the the folder is up 
to date; 
● your personal global script commands and recipes; 
● the log folder containing the execution logs of your build scripts; 
● the templates folder containing the files used by the init command. You 
can customise them to suit your needs; 
● the workspace folder used by the fetch command.
Getting started 
● Download DeploYii using composer or from GitHub; 
● Install it globally (optional - see the wiki); 
● run ./deployii fetch example_basic to try out the basic example; 
● the basic example is downloaded into your workspace folder. You can run 
it again using the run command passing the path to the basicExample/ 
folder; 
● you can now try to create your own build script using the init command. 
For more information please refer to the DeploYii online documentation.
Extending DeploYii 
After creating your build script you should have a file called build.php inside 
the deployii folder of your project. 
To create a script command or recipe just create them inside the commands or 
recipes folder inside your deployii folder. (Those folders needs to be 
created too) 
To have them globally, so that they can be used across different projects, just 
create or move them to the corresponding folders inside your DeploYii home 
folder.
Links & references 
● DeploYii homepage: http://www.deployii.com 
● DeploYii on GitHub: https://github.com/giovdk21/deployii 
● The DeploYii wiki: https://github.com/giovdk21/deployii/wiki 
● DeploYii examples: https://github.com/giovdk21/deployii-examples 
● Yii Framework: http://www.yiiframework.com 
● My Twitter account: https://twitter.com/giovdk21
Thanks for watching! 
Giovanni Derks - http://derks.me.uk - @giovdk21

More Related Content

What's hot

CMake: Improving Software Quality and Process
CMake: Improving Software Quality and ProcessCMake: Improving Software Quality and Process
CMake: Improving Software Quality and ProcessMarcus Hanwell
 
C++ for the Web
C++ for the WebC++ for the Web
C++ for the Web
Patrick Charrier
 
PHP & JavaScript & CSS Coding style
PHP & JavaScript & CSS Coding stylePHP & JavaScript & CSS Coding style
PHP & JavaScript & CSS Coding style
Bo-Yi Wu
 
ZopeSkel & Buildout packages
ZopeSkel & Buildout packagesZopeSkel & Buildout packages
ZopeSkel & Buildout packagesQuintagroup
 
Continuous Quality Assurance
Continuous Quality AssuranceContinuous Quality Assurance
Continuous Quality Assurance
Michelangelo van Dam
 
Makefile Generation From Autotools
Makefile Generation From AutotoolsMakefile Generation From Autotools
Makefile Generation From Autotools
Waqqas Jabbar
 
CakePHP
CakePHPCakePHP
CiklumCPPSat: Alexey Podoba "Automatic assembly. Cmake"
CiklumCPPSat: Alexey Podoba "Automatic assembly. Cmake"CiklumCPPSat: Alexey Podoba "Automatic assembly. Cmake"
CiklumCPPSat: Alexey Podoba "Automatic assembly. Cmake"
Ciklum Ukraine
 
Vagrant move over, here is Docker
Vagrant move over, here is DockerVagrant move over, here is Docker
Vagrant move over, here is Docker
Nick Belhomme
 
CMake Talk 2008
CMake Talk 2008CMake Talk 2008
CMake Talk 2008
cynapses
 
Tools and Tips for Moodle Developers - #mootus16
 Tools and Tips for Moodle Developers - #mootus16 Tools and Tips for Moodle Developers - #mootus16
Tools and Tips for Moodle Developers - #mootus16
Dan Poltawski
 
MySQL Presentation
MySQL PresentationMySQL Presentation
MySQL Presentation
Manish Bothra
 
Zend Framework 1.8 workshop
Zend Framework 1.8 workshopZend Framework 1.8 workshop
Zend Framework 1.8 workshop
Nick Belhomme
 
Advanced Configuration Management with Config Split et al.
Advanced Configuration Management with Config Split et al.Advanced Configuration Management with Config Split et al.
Advanced Configuration Management with Config Split et al.
Nuvole
 
Introduction to WP-CLI: Manage WordPress from the command line
Introduction to WP-CLI: Manage WordPress from the command lineIntroduction to WP-CLI: Manage WordPress from the command line
Introduction to WP-CLI: Manage WordPress from the command line
Behzod Saidov
 
Drupal 8 deploying
Drupal 8 deployingDrupal 8 deploying
Drupal 8 deploying
Andrew Siz
 
Always up to date, testable and maintainable documentation with OpenAPI
Always up to date, testable and maintainable documentation with OpenAPIAlways up to date, testable and maintainable documentation with OpenAPI
Always up to date, testable and maintainable documentation with OpenAPI
GOG.com dev team
 
Host any project in che with stacks & chefiles
Host any project in che with stacks & chefilesHost any project in che with stacks & chefiles
Host any project in che with stacks & chefiles
Florent BENOIT
 
Voiture tech talk
Voiture tech talkVoiture tech talk
Voiture tech talk
Hoppinger
 
Drupal 8 Configuration Management with Features
Drupal 8 Configuration Management with FeaturesDrupal 8 Configuration Management with Features
Drupal 8 Configuration Management with Features
Nuvole
 

What's hot (20)

CMake: Improving Software Quality and Process
CMake: Improving Software Quality and ProcessCMake: Improving Software Quality and Process
CMake: Improving Software Quality and Process
 
C++ for the Web
C++ for the WebC++ for the Web
C++ for the Web
 
PHP & JavaScript & CSS Coding style
PHP & JavaScript & CSS Coding stylePHP & JavaScript & CSS Coding style
PHP & JavaScript & CSS Coding style
 
ZopeSkel & Buildout packages
ZopeSkel & Buildout packagesZopeSkel & Buildout packages
ZopeSkel & Buildout packages
 
Continuous Quality Assurance
Continuous Quality AssuranceContinuous Quality Assurance
Continuous Quality Assurance
 
Makefile Generation From Autotools
Makefile Generation From AutotoolsMakefile Generation From Autotools
Makefile Generation From Autotools
 
CakePHP
CakePHPCakePHP
CakePHP
 
CiklumCPPSat: Alexey Podoba "Automatic assembly. Cmake"
CiklumCPPSat: Alexey Podoba "Automatic assembly. Cmake"CiklumCPPSat: Alexey Podoba "Automatic assembly. Cmake"
CiklumCPPSat: Alexey Podoba "Automatic assembly. Cmake"
 
Vagrant move over, here is Docker
Vagrant move over, here is DockerVagrant move over, here is Docker
Vagrant move over, here is Docker
 
CMake Talk 2008
CMake Talk 2008CMake Talk 2008
CMake Talk 2008
 
Tools and Tips for Moodle Developers - #mootus16
 Tools and Tips for Moodle Developers - #mootus16 Tools and Tips for Moodle Developers - #mootus16
Tools and Tips for Moodle Developers - #mootus16
 
MySQL Presentation
MySQL PresentationMySQL Presentation
MySQL Presentation
 
Zend Framework 1.8 workshop
Zend Framework 1.8 workshopZend Framework 1.8 workshop
Zend Framework 1.8 workshop
 
Advanced Configuration Management with Config Split et al.
Advanced Configuration Management with Config Split et al.Advanced Configuration Management with Config Split et al.
Advanced Configuration Management with Config Split et al.
 
Introduction to WP-CLI: Manage WordPress from the command line
Introduction to WP-CLI: Manage WordPress from the command lineIntroduction to WP-CLI: Manage WordPress from the command line
Introduction to WP-CLI: Manage WordPress from the command line
 
Drupal 8 deploying
Drupal 8 deployingDrupal 8 deploying
Drupal 8 deploying
 
Always up to date, testable and maintainable documentation with OpenAPI
Always up to date, testable and maintainable documentation with OpenAPIAlways up to date, testable and maintainable documentation with OpenAPI
Always up to date, testable and maintainable documentation with OpenAPI
 
Host any project in che with stacks & chefiles
Host any project in che with stacks & chefilesHost any project in che with stacks & chefiles
Host any project in che with stacks & chefiles
 
Voiture tech talk
Voiture tech talkVoiture tech talk
Voiture tech talk
 
Drupal 8 Configuration Management with Features
Drupal 8 Configuration Management with FeaturesDrupal 8 Configuration Management with Features
Drupal 8 Configuration Management with Features
 

Similar to Introducing DeploYii 0.5

Lean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and DrushLean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and Drush
Pantheon
 
Drupal 8 - Core and API Changes
Drupal 8 - Core and API ChangesDrupal 8 - Core and API Changes
Drupal 8 - Core and API Changes
Shabir Ahmad
 
Deployer - Deployment tool for PHP
Deployer - Deployment tool for PHPDeployer - Deployment tool for PHP
Deployer - Deployment tool for PHP
hernanibf
 
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
Bastian Feder
 
Introduction to Drupal - Installation, Anatomy, Terminologies
Introduction to Drupal - Installation, Anatomy, TerminologiesIntroduction to Drupal - Installation, Anatomy, Terminologies
Introduction to Drupal - Installation, Anatomy, Terminologies
Gerald Villorente
 
Drupal 8 improvements for developer productivity php symfony and more
Drupal 8 improvements for developer productivity  php symfony and moreDrupal 8 improvements for developer productivity  php symfony and more
Drupal 8 improvements for developer productivity php symfony and more
Acquia
 
PowerShellForDBDevelopers
PowerShellForDBDevelopersPowerShellForDBDevelopers
PowerShellForDBDevelopersBryan Cafferky
 
Fast Paced Drupal 8: Accelerating Development with Composer, Drupal Console a...
Fast Paced Drupal 8: Accelerating Development with Composer, Drupal Console a...Fast Paced Drupal 8: Accelerating Development with Composer, Drupal Console a...
Fast Paced Drupal 8: Accelerating Development with Composer, Drupal Console a...
Acquia
 
Php7 extensions workshop
Php7 extensions workshopPhp7 extensions workshop
Php7 extensions workshop
julien pauli
 
Development Setup of B-Translator
Development Setup of B-TranslatorDevelopment Setup of B-Translator
Development Setup of B-Translator
Dashamir Hoxha
 
Building and Maintaining a Distribution in Drupal 7 with Features
Building and Maintaining a  Distribution in Drupal 7 with FeaturesBuilding and Maintaining a  Distribution in Drupal 7 with Features
Building and Maintaining a Distribution in Drupal 7 with Features
Nuvole
 
Usage Note of SWIG for PHP
Usage Note of SWIG for PHPUsage Note of SWIG for PHP
Usage Note of SWIG for PHP
William Lee
 
Drupal Continuous Integration with Jenkins - Deploy
Drupal Continuous Integration with Jenkins - DeployDrupal Continuous Integration with Jenkins - Deploy
Drupal Continuous Integration with Jenkins - Deploy
John Smith
 
Capistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient wayCapistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient way
Sylvain Rayé
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Fabrice Bernhard
 
Remote Control WordPress
Remote Control WordPressRemote Control WordPress
Remote Control WordPress
Edmund Turbin
 
Professional deployment
Professional deploymentProfessional deployment
Professional deployment
Ivelina Dimova
 
Face your fears: Drush and Aegir
Face your fears: Drush and AegirFace your fears: Drush and Aegir
Face your fears: Drush and Aegir
Iztok Smolic
 

Similar to Introducing DeploYii 0.5 (20)

Lean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and DrushLean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and Drush
 
Drupal 8 - Core and API Changes
Drupal 8 - Core and API ChangesDrupal 8 - Core and API Changes
Drupal 8 - Core and API Changes
 
Deployer - Deployment tool for PHP
Deployer - Deployment tool for PHPDeployer - Deployment tool for PHP
Deployer - Deployment tool for PHP
 
Php myadmin
Php myadminPhp myadmin
Php myadmin
 
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
 
Introduction to Drupal - Installation, Anatomy, Terminologies
Introduction to Drupal - Installation, Anatomy, TerminologiesIntroduction to Drupal - Installation, Anatomy, Terminologies
Introduction to Drupal - Installation, Anatomy, Terminologies
 
CodeShip
CodeShipCodeShip
CodeShip
 
Drupal 8 improvements for developer productivity php symfony and more
Drupal 8 improvements for developer productivity  php symfony and moreDrupal 8 improvements for developer productivity  php symfony and more
Drupal 8 improvements for developer productivity php symfony and more
 
PowerShellForDBDevelopers
PowerShellForDBDevelopersPowerShellForDBDevelopers
PowerShellForDBDevelopers
 
Fast Paced Drupal 8: Accelerating Development with Composer, Drupal Console a...
Fast Paced Drupal 8: Accelerating Development with Composer, Drupal Console a...Fast Paced Drupal 8: Accelerating Development with Composer, Drupal Console a...
Fast Paced Drupal 8: Accelerating Development with Composer, Drupal Console a...
 
Php7 extensions workshop
Php7 extensions workshopPhp7 extensions workshop
Php7 extensions workshop
 
Development Setup of B-Translator
Development Setup of B-TranslatorDevelopment Setup of B-Translator
Development Setup of B-Translator
 
Building and Maintaining a Distribution in Drupal 7 with Features
Building and Maintaining a  Distribution in Drupal 7 with FeaturesBuilding and Maintaining a  Distribution in Drupal 7 with Features
Building and Maintaining a Distribution in Drupal 7 with Features
 
Usage Note of SWIG for PHP
Usage Note of SWIG for PHPUsage Note of SWIG for PHP
Usage Note of SWIG for PHP
 
Drupal Continuous Integration with Jenkins - Deploy
Drupal Continuous Integration with Jenkins - DeployDrupal Continuous Integration with Jenkins - Deploy
Drupal Continuous Integration with Jenkins - Deploy
 
Capistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient wayCapistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient way
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
 
Remote Control WordPress
Remote Control WordPressRemote Control WordPress
Remote Control WordPress
 
Professional deployment
Professional deploymentProfessional deployment
Professional deployment
 
Face your fears: Drush and Aegir
Face your fears: Drush and AegirFace your fears: Drush and Aegir
Face your fears: Drush and Aegir
 

Recently uploaded

Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
abdulrafaychaudhry
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
ShamsuddeenMuhammadA
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
vrstrong314
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 

Recently uploaded (20)

Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 

Introducing DeploYii 0.5

  • 1. Introducing DeploYii v 0.5 http://www.deployii.com Giovanni Derks: http://derks.me.uk
  • 2. What is it? DeploYii is a PHP task runner and deployment solution designed to be easy to use and flexible. It can be used for very simple tasks or for more complex scenarios depending on your needs.
  • 3. What is it? ● based on Yii 2 console app. (PHP 5.4+) ● friendly, array based, php build script ● extensible (create your own script commands & recipes. Per project or globally) ● interactive / non-interactive modes ● configurable build script (common + per environment) ● override configuration defaults via command line options ● in early stage development but with ambitious goals
  • 4. Main features (as of version 0.5) ● print out text and parameters or require user input ● save / load information from json files ● if / else statement based on PHP expression ● script and home folder version compatibility check ● create, copy, rename, delete folders ● copy, rename, delete file ● set files and folders permissions ● archive/compress files and folders ● replace in files ● SFTP support (put, get, mkdir, chmod, mv, rm, rmdir, ...) ● execute shell commands (locally or over SSH)
  • 5. build.php return [ 'deployiiVersion' => '0.5.0', 'require' => [], 'params' => [ 'username' => 'world', ], 'targets' => [ 'default' => [ ['out', 'Hello {{username}}!'], ], ], ];
  • 6. build.php return [ 'deployiiVersion' => '0.5.0', 'require' => [], 'params' => [ 'username' => 'world', ], 'targets' => [ 'default' => [ ['out', 'Hello {{username}}!'], ], ], ]; the “deployiiVersion” string contains the latest DeploYii version number the build script has been created for. If, in a newer version, some changes break the backward compatibility, DeploYii will prompt the user to update the build script.
  • 7. build.php return [ 'deployiiVersion' => '0.5.0', 'require' => [], 'params' => [ 'username' => 'world', ], 'targets' => [ 'default' => [ ['out', 'Hello {{username}}!'], ], ], ]; Using the require array you can require / pre-load some script commands or recipes. Pre-loading a command allow it to check its requirements, define a new set of parameters and attach helper functions to the main controller. Requirements are recursive so a build script can include a recipe which can include another recipe and a command, etc.
  • 8. build.php return [ 'deployiiVersion' => '0.5.0', 'require' => [], 'params' => [ 'username' => 'world', ], 'targets' => [ 'default' => [ ['out', 'Hello {{username}}!'], ], ], ]; The params array contain the default values of the build parameters. The build parameters are used during the execution of the build script and can be accessed using placeholders in the format of {{placeholder}} and in other commands statements, such as the if/else. Build parameters can be overwritten by the command line, specifying them as a command line options (-- username=mike) while the build configuration is stored in the Build script configuration
  • 9. build.php return [ 'deployiiVersion' => '0.5.0', 'require' => [], 'params' => [ 'username' => 'world', ], 'targets' => [ 'default' => [ ['out', 'Hello {{username}}!'], ], ], ]; The targets array let's you define your build script targets. You can also call a target or a recipe from a target by using the "target" or the "recipe" command: call another target: ['target', 'clean'] execute a recipe: ['recipe', 'test', 'clean']
  • 10. Command line commands $ deployii help The following commands are available: - fetch Fetch the requested project from git and run the build. - help Provides help information about console commands. - init Initialise a new build.php script from the build.tpl.php template file. - migrate Manages application migrations. (Yii 2 built-in feature) - run Run the build; if no target is specified, the "default" one will be ran.
  • 11. The DeploYii home folder During the first execution, the home folder is created in ~/.deployii This folder contains: ● the VERSION file used by the version manager to ensure the the folder is up to date; ● your personal global script commands and recipes; ● the log folder containing the execution logs of your build scripts; ● the templates folder containing the files used by the init command. You can customise them to suit your needs; ● the workspace folder used by the fetch command.
  • 12. Getting started ● Download DeploYii using composer or from GitHub; ● Install it globally (optional - see the wiki); ● run ./deployii fetch example_basic to try out the basic example; ● the basic example is downloaded into your workspace folder. You can run it again using the run command passing the path to the basicExample/ folder; ● you can now try to create your own build script using the init command. For more information please refer to the DeploYii online documentation.
  • 13. Extending DeploYii After creating your build script you should have a file called build.php inside the deployii folder of your project. To create a script command or recipe just create them inside the commands or recipes folder inside your deployii folder. (Those folders needs to be created too) To have them globally, so that they can be used across different projects, just create or move them to the corresponding folders inside your DeploYii home folder.
  • 14. Links & references ● DeploYii homepage: http://www.deployii.com ● DeploYii on GitHub: https://github.com/giovdk21/deployii ● The DeploYii wiki: https://github.com/giovdk21/deployii/wiki ● DeploYii examples: https://github.com/giovdk21/deployii-examples ● Yii Framework: http://www.yiiframework.com ● My Twitter account: https://twitter.com/giovdk21
  • 15. Thanks for watching! Giovanni Derks - http://derks.me.uk - @giovdk21