How CI/CD Works at ElasticBox

At ElasticBox, we integrate Jenkins with GitHub, a software source control management system. We programmatically detect code changes, trigger tests, builds, and deploy based on GitHub pull requests and merges.

For example, when a developer checks in code with a pull request, a few things happen on the Jenkins’ side. First, a GitHub plugin triggers a Jenkins job. As the job needs a slave to build, the ElasticBox plugin automatically launches a slave. The slave runs unit tests. When the tests run successfully, the deploy build step in the Jenkins job kicks in. The job uses the plugin and a box configured in ElasticBox to launch a test instance, which is pretty much a copy of the production instance.

If the dev is happy with the changes, they merge the pull request into staging and production environments again using the ElasticBox plugin and Jenkins. The plugin once configured automatically pushes the latest code to environments like staging and production with one click.