Voiced by Amazon Polly |
Introduction to Git and GitLab
Git
- Git is a version control system used to track changes in computer files. Git’s primary purpose is to manage any changes made in one or more projects over a given period.
- It helps coordinate work among project team members and tracks progress over time. Git also assists both programmers and non-technical users by monitoring their project files.
GitLab
- Gitlab is a service that provides remote access to Git repositories. In addition to hosting your code, the services provide additional features designed to help manage the software development lifecycle.
- GitLab brings teams together to shorten cycle times, reduce costs, strengthen security, and increase developer productivity. These additional features include managing the sharing of code between different people, bug tracking, wiki space, and other tools for ‘social coding’.
Customized Cloud Solutions to Drive your Business Success
- Cloud Migration
- Devops
- AIML & IoT
What is CI/CD?
CI/CD is a subset of DevOps which combines the practices of continuous integration and continuous delivery. CI/CD automates much, if not all, of the manual human intervention required to get new code from commit to production, including build, test, and deploy, as well as infrastructure provisioning.
Continuous integration is the practice of early and regular integration of all your changes made into the main branch of a shared source code repository, automatically testing each change when you commit or merge it, and automatically starting a build.
Continuous delivery is a software development practice that, in conjunction with continuous integration, automates the provisioning of infrastructure and the release of applications.
What is GitLab CI/CD?
- It is simple to learn, use, and scale.
- It is a more efficient system for code deployment and development.
- You can speed up the execution of the jobs by creating your runner (an application that processes the builds) with all pre-installed dependencies.
- GitLab CI solutions are cost-effective and secure, with costs as flexible as the machine used to run them.
- It enables project team members to integrate their work daily, allowing an automated build to easily identify integration errors.
What is GitLab runner?
- GitLab Runner is a worker machine that executes your project’s GitLab CI jobs, through work stealing. Each Runner, as it becomes available, continually sends requests to the GitLab instance, asking to be assigned jobs.
- Different Runners can have different capabilities (e.g. size, speed, or operating system), and they include these capabilities in their requests via tags that the GitLab Runner administrator includes in its configuration.
Steps to perform CI/CD on GitLab
Let us create a project file and commit it to the GitLab repo
Create a project file on your desktop and commit it to the GitLab repo
Step 1: Download git from https://git-scm.com/ and install git in your system.
Step 2: To check if git is installed on your system enter the following command
1 |
git –version |
Step 3: Run the following git commands. Enter GitLab username and email ID
1 2 |
git config --global user.name “xxxx” git config --global user.email “xxxx” |
Step 4: Create a demo project/folder & add it to git
Step 5: Go to the command prompt and cd to the location of the folder and run the following commands.
1 2 |
#git init #git status |
1 2 3 |
#git add . #git commit -m “msg” #git push -u “url” master |
Step 6: Check the project (files) added on GitLab
Install GitLab runner on your PC. Go to the link given below:
https://docs.gitlab.com/runner/install/windows.html
– used in GitLab CI
– Open-source continuous integration service included with GitLab
– used to run jobs & send results back to GitLab
Step 7:
- Create a folder somewhere in your system, ex.: C:\GitLab-Runner.
- Download the GitLab Runner binary from the below link
https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-windows-amd64.exe
put it into the folder you created. The following assumes you have renamed the binary to gitlab-runner.exe
- Run the command line with administrative rights
1 |
cd into the folder cd C:\GitLab-Runner |
1 |
#gitlab-runner.exe install |
Check the version of the GitLab-runner
1 |
#gitlab-runner --version |
Step 8: Now we must register the GitLab-runner with the project associated with the GitLab
1 |
#gitlab-runner.exe register |
Enter the URL provided
gitlab-runner.exe register
It will prompt you to enter a registration code of the runner for your project to that create a project
Step 9: Create a project name my-first-project in your GitLab account
Step 10: Go to settings in your project under settings go to CI/CD Settings
Then go to runners expand the bar and go to the specific runner you will find the token available copy the token and paste it into the cmd
Give a name to your runner as my-runner1
Then enter the tags as ssh, ci and enter you would have successfully registered the runner
#ssh, ci
You can go to the same path in the settings of your project to check for the specific runners registered
Step 11: Add .gitlab-ci.yml in the root folder of your project
– GitLab CI/CD pipeline is configured using a YAML file called .gitlab-ci.yml in each project
– .gitlab-ci.yml file defines the structure and order of the pipeline & determines
Open a Notepad and paste the content given below
1 2 3 4 5 6 7 8 9 10 |
demo_job_1: tags: - ci script: - echo Hello World To push the file into a git repo #git status #git add .gitlab-ci.yml #git commit -m “added yaml file” #git push -u “url of your repo” master |
Step 12: Commit and push the file to the GitLab repo
Step 13: Make any change in the project -> commit -> push
Create a file named test2
Step 14: Give the following commands cmd
1 2 3 |
#git status #git add test2.txt #git commit -m “added test2.txt” |
1 |
#git push -u “url of your repo” master |
Step 15: In your project go to CI/CD -> pipelines. You can see the pipelines passed
Note: If this error occurs in the pipeline stage
ERROR: Job failed (system failure): prepare environment: failed to start process: exec: “pwsh”: executable file not found in %PATH%. Check https://docs.gitlab.com/runner/shells/index.html#shell-profile-loading for more information
Go to the installation directory of GitLab Runner e.g. C:\GitLab-Runner Here you will see config.toml file, open with notepad, and replace pwsh with powershell as below:
Conclusion
Gitlab is a lifecycle tool that provides a vast repository of web-based DevOps. It provides issue tracking on CI/CD pipeline features by using an open-source license. The primary advantage of using GitLab is that it allows all team members to collaborate at all stages of the project. GitLab provides tracking from planning to creation to assist developers in automating the entire DevOps lifecycle and achieving the best results possible.
Get your new hires billable within 1-60 days. Experience our Capability Development Framework today.
- Cloud Training
- Customized Training
- Experiential Learning
About CloudThat
CloudThat is also the official AWS (Amazon Web Services) Advanced Consulting Partner and Training partner and Microsoft gold partner, helping people develop knowledge of the cloud and help their businesses aim for higher goals using best in industry cloud computing practices and expertise. We are on a mission to build a robust cloud computing ecosystem by disseminating knowledge on technological intricacies within the cloud space. Our blogs, webinars, case studies, and white papers enable all the stakeholders in the cloud computing sphere.
Drop a query if you have any questions regarding GitLab and I will get back to you quickly.
To get started, go through our Consultancy page and Managed Services Package that is CloudThat’s offerings.
FAQs
1. What is Git?
ANS: – Git is a version control system that is used to keep track of changes to computer files. Git’s primary function is to manage changes made in one or more projects over a specified period.
2. What is Runner?
ANS: – GitLab Runner is a worker machine that executes your project’s GitLab CI jobs, through work stealing
3. What is CI/CD?
ANS: – CI/CD is a subset of DevOps (the integration of development and operations) that combines continuous integration and continuous delivery practices.
WRITTEN BY Swapnil Kumbar
Swapnil Kumbar is a Research Associate - DevOps. He knows various cloud platforms and has working experience on AWS, GCP, and azure. Enthusiast about leading technology in cloud and automation. He is also passionate about tailoring existing architecture.
Click to Comment