The related between me ad VSOnline was very good. It was all working fine till I wanted to setup continuous integration and delivery to my personal web site www.JoymonOnline.in.
Its was simple.
- Free - Need to get the continuous integration in free.
- CI & CD - Support for hosted service preferred
- Support for running unit tests and integration tests.
- Integration with source control - The integration should happen as soon as I check-in
Issue 1 - No IIS
I was using IIS hosted tests for the web site. In my development machine I can host the project in IIS and run from Visual Studio. The test methods were attributed with [HostType("ASP NET")] to get the tests run by calling the IIS hosted pages. When I tried to run the same tests from VS Online, I could see that I need to write extra scripts to create IIS web app more than that VS Online build machines does not have IIS. The suggestion is to have machine somewhere else on premise or in cloud and deploy the app there and run unit tests.
To be frank, I don't have enough budget to have a machine in the internet for doing integration testing of my web site.
Issue 2 - No admin accessWhen the build machine is allocated for us from VS Online, our build is not running with admin privileges. So even if we try to host web app with other frameworks such as MVCIntegrationTestFramework, it won't allow.
Link to list of software in VS Online build machine.
What I get in Github + AppVeyor
- Hosting in Github is free. Only thing is my source will be public. But what is there in it? HTML & CSS files which anyone can copy from browser.
- AppVeyor is free if the source is in Github. They provide admin access to our build activities and has IIS in their machine along with other software.
- Secure storage of credentials to do Web Deploy or FTP upload
More details are in one of the earlier post.
So which is better? Absolutely going to Github and setting up CI & CD via AppVeyor is the way
Now everything is good. After my check in AppVeyor build the site run unit testing and deploy to staging. After manual testing in staging, if I put a release tag on Github, AppVeyor will deploy to my production www.joymononline.in server which is in GoDaddy.