Jonathan Bennett

What is CI/CD

Continuous Integration (CI) is a practice of constantly merging all the code from every developer into a single main version. This is in contrast to old practices where the work from individuals or teams would only be merged at major milestones, typically when completed. This might occur after weeks or months of work and would lead to a huge amount of work to make sure that it could be done correctly without messing up the work of others. With CI, this might happen multiple times a day.

By keeping merges very small, CI makes it much easier to find an incompatibility and fix it early leading to greatly lower cost. There are additional benefits such as greater code reuse since smaller units of code and be more easily shared.

Continuous Delivery

If you can constantly merge all new code, have confidence in your test suite, and have automated deployments, when not glue those pieces together and do continuous delivery.

By setting up a test environment and a webhook, you can easily trigger your test suite to run every time the code is updated. Once the test suite passes, the testing environment can be set up to automatically run the deployment scripts.

By automatically updating the test environment within minutes of new code being added, you can ensure that everyone’s work cleanly comes together, and any issues that do come up are addressed early on when it is most easily and cheaply corrected.