Overview

It is common on software projects for developers to work in parallel. At some point, it is necessary to integrate all of these parallel streams of work into one codebase that makes up the final product. In the early days of software development, this integration was performed at the end of a project, which was a difficult and risky process.

What is DevOps?

DevOps is the practice of operations and development engineers participating together in the entire service lifecycle, from design through the development process to production support » – theagileadmin.com definition!

What is Continuous Integration?

Continuous integration is a DevOps software development practice where developers regularly merge their code changes into a central repository, after which automated builds and tests are run. Each check-in triggers an automated build and runs automated tests to verify that the newly introduced code didn’t break any existing code. In this way, CI surfaces errors and problems immediately and ensures that all team members stay up to date with each other’s work. This results in a cohesive and stable code base.

The key goals of continuous integration are to find and address bugs quicker, improve software quality, and reduce the time it takes to validate and release new software updates. Continuous integration helps to automate deployments and allows rapid development and deployment.

With continuous delivery, code changes are automatically built, tested, and prepared for a release to production. Continuous delivery expands upon continuous integration by deploying all code changes to a testing environment and/or a production environment after the build stage.

Advantages of Gitlab CI

  • Integrated: GitLab CI is part of GitLab. You can use it for free on GitLab.com.
  • Easy to learn: It’s very easy to understand.
  • Beautiful: GitLab CI offers the same great experience as GitLab. Familiar, easy to use, and beautiful.
  • Scalable: Tests run distributed on separate machines of which you can add as many as you want.
  • Faster results: Each build can be split in multiple jobs that run in parallel on multiple machines.
  • Continuous Delivery (CD): multiple stages, manual deploys, environments, and variables.
  • Open source: CI is included with both the open source GitLab Community Edition and the proprietary GitLab Enterprise Edition.

Features

  • Multi-platform: You can execute builds on Unix, Windows, OSX, and any other platform.
  • Multi-language: Build scripts are command line driven and work with Java, PHP, Ruby, C, and any other language.
  • Stable: Your builds run on a different machine than GitLab.
  • Parallel builds: GitLab CI splits builds over multiple machines, for fast execution.
  • Real Time logging: A link in the merge request takes you to the current build log that updates dynamically.
  • Versioned tests: A .gitlab-ci.yml file that contains your tests, allowing everyone to contribute changes and ensuring every branch gets the tests it needs.
  • Pipeline: You can define multiple jobs per stage and you can trigger other builds.
  • Auto Scaling: You can automatically spin up and down VM’s to make sure your builds get processed immediately and minimize costs.
  • Build artifacts: You can upload binaries and other build artifacts to GitLab and browse and download them.
  • Test locally – There are multiple executors and you can reproduce tests locally.
  • Docker support: You can easily spin up other Docker containers as a service as part of the test and build docker images.

So this is all about introduction to Continuous Integration and Deployment for now and very soon we will continue with some other topic!

Stay tuned! Read more!