NWDUG's unconference talk about deployer which can be downloaded at https://deployer.org. This presentation goes into how to use deployer in Drupal 8. The talk also described how to make your own custom tasks.
2. Contents
• What is it?
• It’s features
• The benefits
• How to use it
• Going further
• Demo
3. What is deployer?
A deployment tool written in PHP with support for popular frameworks out of the box
4. Some stats
129 contributors
53 release tags
Created by
Anton
Medvedev
709, 890 installs
(packagist)
MIT License
Now only
PHP7
4.5K stars
1.5k commits
Started 11 Jul
2013
7. Features
1. Simple to set up with not much to learn.
2. Premade scripts known as recipes for popular
frameworks
3. You can create your own tasks to make recipes.
4. Rollback functionality to a previous release.
5. Atomic deployment
6. Parallel tasks
Features
8. The benefits
• Helps streamline processes
• No git pull failures within environments
• Nice uniformed site files structure
• No downtime
• Flexible
• Easy to debug when there are failures
• Reliable
The benefits
15. drupal8.php recipedrupal8.php recipe
● Gets branch information
● Determines if there are any input
options for git tags or revisions
● Displays the output
16. drupal8.php recipe
● Check if shell is POSIX-compliant
● Check for existing current directory
and creates one if it doesn’t exist
● Creates metadata .dep directory if
needed.
● Creates the main releases directory if
needed
● Create shared directory if needed
drupal8.php recipe
17. drupal8.php recipe
● Checks for a deploy.lock file in the .dep
directory so that no other deploy
instances can run for the environment.
If none exist then a deploy.lock file is
created
drupal8.php recipe
18. drupal8.php recipe
● Works out which release to use next
● A log of the release information is kept
inside the .dep directory in the releases
file. The values are comma separated.
drupal8.php recipe
19. drupal8.php recipe
● Grabs tag or revision info from user
input.
● Builds a relevant git pull command into
the appropriate release folder.
● Leverages git cache by borrowing
objects from existing clones.
drupal8.php recipe
30. Going further
● Automatic config (CMI) imports
● Database migrations
● Whole site builds in development environments
● Trigger automate tests before a build is deployed