Continuous Integration (CI) is a development practice from Extreme Programming that requires developers to integrate code into a mainline as often as possible, at least once a day, and each check-in is then verified by an automated build that compiles the code and runs the suite of automated tests against it, allowing teams to detect problems early.
In continuous delivery, every change pushed to the main repository is ready to be deployed to production, but starting this process still requires human interaction.
In continuous deployment, the deployment to production is automatically triggered for every change that passes the test suite.