What is continuous integration (CI)?
When working on software development projects, there are a lot of moving parts. Often times, when there are a lot of people working on different pieces of a software project in different phases, some repetitive tasks can get pretty tedious.
For example, you've finished developing your code in the GitFlow workflow, and are ready to send it in for testing. You'd like to test it yourself (in an environment outside your computer) by building and running the software with your changes, but you can't because you don't have access. What if it works on a Windows PC and not on a Mac or mobile phone? You have to build, run, and test it in several environments. That can take days. 😞 On top of that, you have to get permission from other teams to run this test. 😩 It's going to take forever to prep for this test when you'd rather just get back to coding your next feature. 😤
Guess what? You can fix all that with automation! Do you really think developers wouldn't find a way to automate all of the boring and repetitive tasks? I mean, that's what we do! 😉
Continuous integration (CI)/continuous delivery (CD) streamlines the development workflow to maximize a developer's valuable time. It saves the company a lot of time and money too!
You can find several tools that provide CI/CD functionality; however, for this course, we will focus on a GitLab tool called GitLab CI. Let's check it out!
What is GitLab?
GitLab is a company that provides developer tools using Git. They have an entire project management system that sees a project from start to finish.
What is really exciting about their platform, is the continuous integration and delivery platform called GitLab CI.
It is difficult to realistically keep manual testing as part of the workflow because the process is so repetitive. However, with the GitLab CI, this process is automated and less prone to human error. This tool will continually check the integrity and functionality of the code while building, testing, and running the source code. No more surprise bugs and deploying the wrong code. 😎 This makes everyone happy.
How does GitLab CI automate a process for a team? 🤔
First, you must have your workflow. This workflow will be translated into a coded script that will run all the automated processes for you.
This work is often done by a company automation specialist often called Development Operations or DevOps. This specialist will create a pipeline in the GitLab CI platform which will provide something like a batch script that will run a process line by line. These scripts are easily customizable, and can be updated at any time.
There are some processes that can be automated and integrated using Git and GitHub.
GitLab provides an automation tool using CI/CD.
Automation scripts can be created on GitLab CI to streamline the overall workflow.