My current company has a Jenkins/DotCi setup. Our current process for CI is when dev pushes to github, jenkins runs unit tests on all branches and reports back to us via email if the unit tests failed.
If on master, we then run a deploy to a UAT environment and we will soon be activating our integration tests after a deploy occurs successfully.
We want to run our integration tests against our Staging environment on a daily basis.
With the “Build Periodically” feature under Config i know we can specify when we trigger it to occur, however is there a way to have it trigger the integration test only rather than having to deploy?
1
You can create a new job that only runs your integration tests. I always split up jobs like this:
- build + unit test
- deploy into UAT
- run smoke tests
- run integration tests / UAT
Take a look at the plugins Build Result Trigger, and the new Build Flow Plugin.
You can also just trigger another job with plain Jenkins without any plugin. In your job, add a Post build step and make it Run anther job.
edit If you need to copy artifacts from one build to another (to create a build+deploy pipeline), you can use the Copy Artifact Plugin.
2
Yes. You can put the deployment and the integration tests into two different Jenkins projects.
Then you can configure the project with the integration tests to be built (executed) when the deployment build succeeds and also on a regular schedule.
3