Ideas on what to do per build, when to trigger builds, etc.
- compile
- triggers build failure
- run unittests
- triggers build unstable
- run end-to-end/integration tests
- triggers build unstable
- produce unittest coverage report, publish it somewhere
- cobertura plugin, requires a cobertura xml to be produced by the test run https://wiki.jenkins-ci.org/display/JENKINS/Cobertura+Plugin
- triggers build unstable below a threshold
- generate documentation, publish it somewhere
- deploy if build is stable (or even unstable)
- on first failure/instability:
- slack message https://wiki.jenkins-ci.org/display/JENKINS/Slack+Plugin
- some custom integration with a public monitor
- on back to stable:
- slack message
- on commit: specific branches may trigger different tasks: (e.g. a push to a 'master' branch can deploy a web app to an acceptance environment, a push to a 'develop' branch may do no deployment action)
- nightly: deploy to some environment
- copy/backup/restore a database (e.g. copy a production db to an acceptance environment)
- deploy on-demand (a branch to a target env)