We currently use Bamboo as our testing server and would like to migrate to Jenkins
We would like to have the following configuration / capabilities:
Multi branch setup, for being able to test multiple branches of the same repository in the same project (git reposities)
Pull repository and run build on each change to Master branch
Being able to launch the build VIA api (and instructions how)
“pretty” HTML reports, in addition to raw log
In case it is feature branch, notify developer via Email when build failed (developer email can be delivered via parameter to build)
In case it is master branch:
Notify selected individuals via email
Notify R&D via Slack integration (already existing)
Integration with JIRA, links from Jenkins to JIRA tickets and links from JIRA to Jenkins builds.
Each “Build” step is composed of at least two tests (should be configurable) that should be executed in parallel, each on its own slave
Step 1: Frontend (selenium “mvn build”, will be provided)
Step 2: Backend (php unit, will be provided)
Only when these tests pass a “Build” is considered as “Pass”
Pre-build step to running the tests: merge master branch to the local branch, if this step fail (conflicts) build should not be started.
Dynamic Slaves: can be raised and destroyed by demand (Amazon EC instances), for example if Jenkins gets 10 build requests, Jenkins should raise 10 salves, run the tests and destroy them in the end.
For this task we’d appreciate feedback on what's the best way to prepare the images so it would save the most time on startup.
Merge from master, run tests, if pass, merge to master and run deploy script (will be provided).
During the run of the job, addition job of the same type are forbidden to run in parallel.