What is CI/CD?

I see that Gitlab has a CI/CD feature and it’s popular. What is CI/CD? Can someone explain in simple terms? I have programming experience but I can’t know everything. All I know is that it stands for Continuous Integration and Continuous Deployment. I searched Google for the answer and I didn’t understand the articles. Does it have something to do with containers? So what is it and why should I use it?

Hi @desbest,

A CI script is usually run in a container, yes. Basically that script is created to automate all the tedious steps of running your project’s tests (linters, unit to integration tests, security analysis, etc.). Check out our CI-related videos and the docs to learn more.

Something that helped me personally gettting started with CI was this tutorial :slight_smile:

I see that Gitlab has a webcast about CI/CD here.

Hi @desbest,

don’t mix general ideas, like ci and cd, and tools like docker :slight_smile:

CI allows to securisate your code, and check that your modification don’t reduce the quality of your application, with test, sonar for exemple, security, …

CD allows to deploy automaticly your application when your push code on your repo.

With GitLabCI, you can make operation to cover those two CI and/or CD, and effectively, it use containers.

In the “real life”, i have application and when i push modification, my GitLab CI execute many operations. If my push break a unit test, GitLab CI stop the operations and my application will be not update my serveurs. So i don’t break my application in production :slight_smile: Contrariwise if all is ok, my application is update without made one operation manually.