Best practice with Coldfusion deployment
I'm new to Coldfusion development and inherited an already deployed project. Due to various technical limitation, it is not possible to develop locally on our workstations (like you would do for .net). As a consequence, the files are edited directly from the test servers (and commited on SVN from there).
Once again, as the test db is usually way behind the prod db, we often have to edit the code directly from the prod server (please don't blame here, I know this is a bad thing).
I'd like to take this opportunity to put back the process into something manageable:
- Local code edition
- Unit testing using MXUnit
- Commit with SVN
- Have a hook on SVN that would deploy to the 开发者_如何学Ctest server
- Test on the test server
- Trigger somehow the deployment to the prod servers
In terms of technology, I was thinking of a combination of: CFEclipse, MXUnit, SVN and ANT
Aside from SVN, everything would be new and can be changed of you have a better advice.
Did anyone have implemented such processes and could be me a hint on how to get started?
In our office we tried firstly ANT + MXUnit + Selenium + TeamCity but after some time we decided to switch to Jenkins/Hudson continuous integration server.
There are plenty of how-tos and tutorials about continuous integration so I guess you don't need me here to explain it in details.
All in all, build your ANT scripts for svncheckin/checkout, build MXUnit tests, generate/write Selenium tests and run everything from Jenkins user interface on test server.
Quick hints: Develop ANT scripts locally, to avoid deleting files on server (happened to us once :) ). MXUnit is tricky when it comes to running it from browser, pay attention to application scoped variables. You can write/edit Selenium tests in many languages, Java seemed best choice in our case. Both TeamCity and Jenkins have their pros and cons, better try both and see which suits you better.
Related links:
http://www.jetbrains.com/teamcity/
http://jenkins-ci.org/
http://seleniumhq.org/
You can also take a look at BDD (Behavior driven development) and include JBehave http://jbehave.org/ into your agile development workflow, awesome stuff if you have "complicated" clients.
Good luck!
Look into git instead of svn. Much better. And Mylyn/Tasktop to tie everything together in your ide.
精彩评论