What Is GitLab
Hello Everyone
Welcome to CloudAffaire and this is Debjeet.
In this series, we will explore one of the most popular web-based DevOps lifecycle and project management tool GitLab. In this blog post, we will what is GitLab, explore different components of GitLab and will also create our 1st Project in GitLab.
What Is GitLab?
GitLab is a web-based DevOps lifecycle tool that provides a Git-repository manager providing wiki, issue-tracking and CI/CD pipeline features, using an open-source license, developed by GitLab Inc. The GitLab code was originally written in Ruby, with some parts later rewritten in Go. GitLab was initially launched as a source code management solution to collaborate with his team on software development. It later evolved into an integrated solution covering the software development life cycle, and then to the whole DevOps life cycle. The current technology stack includes Go, Ruby on Rails and Vue.js.
GitLab Components:
GitLab has different components working together to provide complete DevOps and project management solutions.
Projects:
In GitLab, you can create projects for hosting your codebase, use it as an issue tracker, collaborate on code, and continuously build, test, and deploy your app with built-in GitLab CI/CD. Your projects can be available publicly, internally, or privately, at your choice. In layman term project is basically your remote git repository.
Groups:
In GitLab, you can assemble related projects together and grant members access to several projects at once using groups. In layman term, you can consider group as a root directory.
SubGroup:
Subgroups, also known as nested groups or hierarchical groups, allow you to have up to 20 levels of groups. By using subgroups you can separate internal/external organizations, organize large projects and make it easier to manage people and control visibility. You can create a project without any groups or subgroups or within a group or within a subgroup under a group. In layman term, you can consider subgroup as a subdirectory within your root directory.
GitLab CI/CD:
Continuous Integration (CI) works by pushing small code chunks to your application’s codebase hosted in a Git repository, and, to every push, run a pipeline of scripts to build, test, and validate the code changes before merging them into the main branch. Continuous Delivery and Deployment (CD) consist of a step further CI, deploying your application to production at every push to the default branch of the repository. GitLab CI/CD is configured by a file called .gitlab-ci.yml placed at the repository’s root. The scripts set in this file are executed by the GitLab Runner.
GitLab Runner:
In GitLab CI, Runners run the code defined in .gitlab-ci.yml. They are isolated (virtual) machines that pick-up jobs through the coordinator API of GitLab CI. A Runner can be specific to a certain project or serve any project in GitLab CI. A Runner that serves all projects is called a shared Runner. GitLab Runner implements a number of executors (For example shell, docker, Kubernetes etc.) that can be used to run your builds in different scenarios.
.gitlab-ci.yml:
The .gitlab-ci.yml file defines the structure and order of the pipelines and determines what to execute using GitLab Runner, what decisions to make when specific conditions are encountered. For example, when a process succeeds or fails.
Permissions:
GitLab users have different abilities depending on the access level they have in a particular group or project. If a user is both in a project’s group and the project itself, the highest permission level is used. Users can have different roles assigned to them like Guest (Least privilege), Reporter, Developer, Maintainer (Highest privilege on project level), Owner (Highest privilege on a group level) and Administrator (GitLab instance admin, the Root user).
How To Create A Project In GitLab?
Step 1: Create one account in GitLab using https://gitlab.com/users/sign_up , skip this step if you already have a GitLab account.
Step 2: Click on ‘Create a project’, to create your 1st GitLab Project.
Step 3: Provide your project name and visibility level and click ‘Create project’.
Our 1st GitLab Project successfully created. You can clone the project to your local system using git clone command with HTTPS link (Since we did not configure SSH yet).
Hope you enjoyed this article. In the next blog post, we will discuss GitLab Projects.
To get more details on GitLab you can follow the below link.
https://docs.gitlab.com/ee/README.html
To Get more details on Git you can follow the below links.
https://cloudaffaire.com/category/devops/git/