Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Coldfusion continuous Integration

let me begin by saying I 'm a coldfusion newbie. I 'm trying to research if its possible to do the following and what would be the best approach to achieve it.

Whenever a developer checks in code into SVN, I would like to do a get all the new changes/files and do an auto build to check if the code can be deployed successfully to production server. I guess there are two parts to it, one syntax checking and second integration test(if functionality is working as expected). For the later part some unit test tools would have to be used.

Can someone comment on their experience doing something similar for coldfusion. Sorry for being a bit vague...I know its a very open-ended question but any feedback would be appreciated.

Thanks

like image 622
jsp Avatar asked Jun 14 '26 11:06

jsp


2 Answers

There's a project called "Cloudy With A Chance of Tests" that purports to do what you require. In particular it brings together a number of other CFML code analysis projects (VarScope & QueryParam) to check code, as well as unit testing. I am not currently using it myself but did have a look at it some time ago (more than 12 months) and it appeared to be quite good.

https://github.com/mhenke/Cloudy-With-A-Chance-Of-Tests

Personally I run MXUnit tests in Jenkins using the instructions from the MXUnit site - available here:

http://wiki.mxunit.org/display/default/Continuous+Integration+--+Running+tests+with+Jenkins

Essentially this is set up as an ant task in Jenkins, which executes the MXUnit tests and reports back the results.

like image 137
Andrew Myers Avatar answered Jun 17 '26 16:06

Andrew Myers


We're not doing fully continuos integration, but we have a process which automates some of the drudgery of our builds:

  • replace the site's application.cf(m|c) with one that tells users that the app is being deployed (we had QA staff raising defects that were due to re-deployments)
  • read a database manifest XML which lists all SQL scripts which make up the current release. We concatenate the scripts into a single upgrade script, suitable for shipping
  • execute the SQL script against the server's DB, noting any errors. The concatenation process also adds a line of SQL after each imported script that white to a runlog table, so we can see what ran, how long it took and which build it was associated with. If you're looking to replicate this step, take a look at Liquibase
  • deploy the latest code
  • make an http call to a ?reset=true type URL to tell the app to re-initialize
  • execute any tests

The build is requested manually through the build servers we have, but you click a button, make tea and it's done. We've just extended the above to cope with multiple servers in a cluster and it ticks along nicely. I think the above suggestion of using the Jenkins SVN plugin to automate the process sounds like the way to go.

like image 36
barnyr Avatar answered Jun 17 '26 17:06

barnyr



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!