diff --git a/source/_daily_emails/2024-07-02.md b/source/_daily_emails/2024-07-02.md new file mode 100644 index 000000000..6e44d5b2a --- /dev/null +++ b/source/_daily_emails/2024-07-02.md @@ -0,0 +1,35 @@ +--- +title: CI !== CI Pipeline +date: 2024-07-02 +permalink: daily/2024/07/02/ci-not-ci-pipeline +tags: + - software-development + - git +cta: ~ +snippet: | + Continuous integration is not the same as a CI pipeline. +--- + +Yesterday I replied to [a post on X](https://x.com/ianmiell/status/1304103008242991111): + +> I have worked on many teams that use CI tooling and call their process CI, but I have never seen CI actually done as defined on Wikipedia: +> +> "CI is the practice of merging all developers' working copies to a shared mainline several times a day" + +[I've written about this before][0] and I think the term CI or CI/CD is one of the most misused or misleading in software development. + +CI, or continuous integration, is, as the post days, the process of everyone merging their changes at least once, or usually several, times a day. + +It isn't something that is configured or created - it's a process. + +## Here's the thing + +You can do CI without a CI pipeline and vice versa. + +You can have a CI pipeline but not do continuous delivery or deployment. + +What most people think of as CI or CI/CD is a set of automated checks that run when code is updated - usually on a feature or topic branch. + +Whilst important, it's not "CI". + +[0]: {{site.url}}/blog/continuous-integration-vs-continuous-integration