We were inspired by our team needs:
- run tests before deploy in order to have the result earlier in the development cycle
- isolate build environments
- flexibility to configure their own custom rules when it comes to static tests
- speed up the deploy by using pre-built assets
- remind the developers to update the tests when they change or create new application workflows
What it does
We started to unify our build and test environments across machines, and to provide an efficient mechanism for deploying applications. We managed to run tests before deploy and create reusable images for later use.
How we built it
We combined Jenkins and Docker in order to improve the speed and the consistency of our automation tasks.
Challenges we ran into
When it comes to integrate Docker with Jenkins we run into some issues. Jenkins can only launch a single container that must run all the services needed for the application as opposed to Docker philosophy that is to run each service in a separate container.
Accomplishments that we're proud of
We were proud of the performance improvements on branch deployment.
What we learned
We gained experience in building Docker images, containers and working with Jenkins pipelines
What's next for Hello Docker
Next we will implement this proof of concept in a couple of our projects and further refine the customization options offered to the development teams.
We will also improve the deployment strategy that uses the pre-built assets in order to reduce the time needed to extract the compressed application sources.