Continuous integration (CI) is, strictly speaking, the practice of bringing code changes together into a unified whole, well, continuously (or at least frequently).
In practice, this means that any number of tasks are run automatically in order to ensure that the code remains in a workable state as changes occur. There are a number of modern systems that facilitate this sort of pattern, including GitHub Actions, which we will use in class.
We will discuss several examples that might be part of a CI pipeline, listed below.