Conﬁg Management• Using properties separates tasks from environments.• Allows for more generic deploy setups. prop <?xml prop development.ini prop test.ini build.xml production.ini
Extending Phing• As simple as extending a base class and pointing to it in your build script.• Lots of extensions already in existence. • Read through phing documentation. • Search GitHub for “phing”• Easy to integrate with existing tools.https://github.com/mathewbyrne/closure-task
Environments• Deﬁned by conﬁguration.• Should have sensible defaults.• Activated by deployment process.• Important - can be a security issue! development staging production
Deploying with Version Control• Websites are more than just <code> • Conﬁguration • User Content • Assets • Setup • Databases Schemas• Version Control is easy, but not ﬂexible.• Deployment procedure not in VC.
Database Migrations• Migrations == Database versioning.• Automation required.• Should be part of the deployment process.
Conclusion• Automated deployment is highly desirable.• Lots of tools in existence.• Environment and conﬁguration are important.• Automate everything!