Demonstrative Software Delivery Pipeline
Where to Next is an app for maintaining a list of campgrounds. Once a campground has been visited, delete the item number from your list.
Using a webhook, every pull request and push event triggers GitHub to notify the Jenkins controller. Once the controller node receives the event, it cycles through 3 stages based on the specific events information.
The first stage (testing) occurs only when a pull request is sent to the development branch. Testing occurs only on the test server. The results are returned to GitHub to allow for viewing before a pull request is approved.
Once a pull request is approved and merged with the development branch, the building of a Docker image occurs on the build server. A successful build and push to Docker Hub triggers the deployment stage by updating the repository's deployment branch.
All pushes to the deployment branch trigger the final stage of deploying the application. Using Ansible, the server dedicated for deployment pulls the recently pushed Docker image and starts a container on the dedicated app server.