This is broad in scope, so I hope I can narrow it down to a concise set of questions. I basically need to know the technologies required to setup a Continuous Integration Testing/Deployment per Bamboo in C#.
Our Architecture is currently:
- Product: C#.NET/WCF -> Commit -> Build(Bamboo) -> Manually deploy to QA Server(AWS)
Product is a multi-service architecture.
- Testing: C#/Selenium/NUnit -> Run tests manually
Testing solution is it's own repo setup with:
- Class Library Project (Page Object Model)
- Test Project with all of our Integration tests.
- Team Communication: Agile with JIRA.
- EDIT: this is all cloud based.
I need to adapt this into a Continuous Integration System:
- Product: Commit -> Build -> Deploy to Testing Server.
- Testing Solution: (If there's new commits then Commit -> Build) Run against Testing Server
- If Pass -> Deploy Product to QA server
- If fail -> create JIRA issue, notify developer.
Once I am at Bamboo, I have many plugins at my disposal... BUT, there are so many high level tutorials, videos, etc that talk about Jenkins, maven, Cucumber, etc, etc... I have no clue which setup will handle our architecture. And, are compatible with C#.NET, Selenium, etc.
- What plugin(tool) can auto-deploy a multi-service architecture in c#.net/wcf?
- What plugin works with our testing framework: C#.NET w/Selenium and NUnit?
- What plugin(s) can run our testing framework AFTER the product has been deployed to the testing server? We are required to have at least parts of the multi-service architecture running to preform tests.
- How do I utilize my Testing Framework in this architecture? Can it even be ran from Bamboo when a developer commits? And how do I tie this into the system to successfully re-deploy to another server if pass, or create an issue and send it back to the developer if fail.
What technology route do I need to take to accomplish this?
So far I have:
Bamboo, Maven, Cucumber to execute testing framework against the Testing server, Jenkins to handle parallel testing(no clue how that works), Maven to redeploy to QA on success, or Cucumber will notify through JIRA if testing fails.
There's just too many bits and pieces to make this work and none of the information on the web is precise enough for me to determine which route I should take!
Please share your wisdom!
Thank you so much in advance!