3 ms·
Or simply: - CI can build your app and run tests on each commit or manually. - CD can deploy your app (copy files to some host, pull newest docker image, do a
by jve 4y ago
Or simply:
- CI can build your app and run tests on each commit or manually.
- CD can deploy your app (copy files to some host, pull newest docker image, do any additional steps necessary) on each commit or manually to dev/test/prod instances.
It enormously frees up your valuable brain cycles and you feel excited instead of "eh, there it goes again, how i'm not liking deployments..." whenever you want to deploy.
If you have `make build` && `make test` or similar script, that runs your tests, congrats, you have local almost-CI doing the hard work for you.
If you have `make deploy` or similar script that makes deployment easily, congrats, you have a local CD doing the hard work for you.
Except server software enables you to run builds/tests/deployments even when your computer is off or your colleague forgets to run make test.
- capableweb 4y ago> - CI can build your app and run tests on each commit or manually. "Simply" while getting it wrong? :D What "Continuous Integration" is hides in the name of it, you continuously integrate the code into the "main branch/trunk", meaning if you have multiple contributors to a project, they frequently all merge the code into a common place where they base their next changes from. "Continuous Deployment" is taking CI to the next step where you frequently deliver those integrated changes to your user. Deploying every commit to a testing instance wouldn't actually be CD as your users usually don't hang around on your testing instance. If you frequently push changes to production though, where users can use it, then you are "continuously deploying". To make things even more confusing, CD can also refer to "Continuous Delivery" which is essentially the same as "Continuous Deployment" except you don't actually deploy to production, you just pretend to all the way up to actually updating the software on the production server. You do this in order to always be ready to deploy whenever, but when you don't feel safe enough to get there just yet. Building and tests are not even needed for CI nor CD, although it helps tremendously and it would be foolish to attempt CI/CD without any sort of automated tests.
- jve 4y agoThanks for clarification, then it turns out to be simpler per your definition: Basically, git with remote origin is CI :) In this case, I'm pretty sure people that don't care about CI uses CI, but they don't care how its called.