Being part of the development team I heard my infra team talking about enabling CI/CD to the projects that are being implemented. If you are part of dev or infra team you know the pain of doing the deployments for small minute code changes. During deployment, there could be multiple stages to clean, build the project, test and finally deploy it which requires all your attention and intimate the dev team about the failures if so in between.

So the question is why do want to waste time doing so? Because anyway the whole codebase must be using version control systems(Git) these days. Once you use Git, codebase deployment requirements will become tougher and tougher.

  • One team will ask you that they want to deploy as soon as they make commit to ‘xyz’ branch.
  • One team will ask you to deploy as soon as they resolve the bug.
  • One team will ask you to generate .apk or .iso files everyday morning and send them to the testing team for testing.
  • ……(never ends 😡)

So I tried enabling CI/CD to my projects. I personally use Gitlab for version control(Because it is free. Now Github is also free for private repositories. Check it out 👉 ). I didn’t know what is CI/CD prior to this blog. I tried various possible combinations with Gitlab CI/CD. Here I am writing them from scratch. Let’s get started.

So what is CI/CD? 💁

CI/CD is a coding philosophy and set of practices that drive development teams to implement small changes and check in code to version control repositories frequently and deploy them to servers based on the configurations you have mentioned.

Before trying out various cases, make sure you create a repository in Gitlab and clone it and keep it ready.

Source: https://medium.com/devopslinks/ci-cd-essentials-from-scratch-with-gitlab-61502acf318e