Continuous deployment

To move from delivery to deployment is a matter of maturity—you need a reliable process that ensures only the working code is going into production.

You already have your code running unit tests on every build. Actually, you didn't forget to write unit tests, right?

On every success, your built artifact is properly stored and you manage the right versioning for your application.

You have mastered the deployment process for your application, dealing properly with any condition that might occur. Your application server is never going down again without your knowledge and you achieved it with the help of just two buttons: build and deploy! You rock!

If you are at this point, your next move shouldn't be a big deal. You only need to automate the two jobs so you don't need to hit the button anymore.

In the build job, you'll set it to be executed whenever Jenkins finds any changes in the source code repository (check the documentation if you don't know how to do it).

Once it is done, there is just one last configuration—make the build step on the build job call another job, the deploy job. So any time the build is executed successfully, the deploy is also executed right away.

Cheers! You've made it.