Every branch is tested on every commit/merge Small batches of features in agile sprint style
Adds a release step, build package from branch and deploy Allows quick re-deployment of previous versions if things go wrong Keeps all deploys consistent, dependencies etc are all same versions
Dev branch (feature development) Release branch (bug fixes) Master branch (released/staging -> production code)
- major - possible BC breaks
- minor - no BC breaks, new features
- patch - fixing bugs
- database
- file stores
- web services
- cache
Tools like Puppet https://puppetlabs.com/, Chef https://www.chef.io/chef/
- Composer http://getcomposer.org
- Puli http://docs.puli.io/en/latest/
- Phing https://www.phing.info/
- Doctrine Migration http://www.doctrine-project.org/projects/migrations.html
- Phinx https://phinx.org
- dbDeploy http://dbdeploy.com/
- Behat: Acceptance Tests - fork of cucumber http://docs.behat.org/en/v2.5/
- Mink: Powers browser for Behat http://mink.behat.org/en/latest/
- PHPUnit: Unit Tests https://phpunit.de/
- PHPSpec: spec BDD (generate code based on test specs) http://www.phpspec.net/en/latest/
- Atoum - Simple Unit tests https://github.com/atoum/atoum
Unit tests are faster to run as they test YOUR code, acceptance tests also have to use dependencies so take longer to run.
- Amazon Code Deploy: free with AWS http://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html
- Zend Deployment: part of Zend Server http://www.zend.com/en/products/server/features#right_0476ce
These are just some quick notes I made from the presentation with links to more information. If I missed anything let me know and I can add it in.
Thanks again to Frederic and Christophe from Continuousphp which packages a lot of this up into an easy to use interface.