Gitlab CI/CD概述

这篇具有很好参考价值的文章主要介绍了Gitlab CI/CD概述。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

CI/CD 是一种持续开发软件的方法,可以不断的进行构建、测试和部署代码迭代更改。这种迭代有助于减少基于错误或失败的版本进行开发新代码的可能性。使用这种方法,从新代码开发到部署,可以减少人工干预甚至不用干预。
达到持续的方法主要是:持续集成持续交付持续部署

Gitlab CI/CD

Gitlab CI/CD 也就是 Gitlab 提供了上面的 CI/CD 能力,可以进行持续集成,持续交付和持续部署。Gitlab CI/CD概述,运维小趣,gitlab,ci/cd,java
上面 Gitlab CI/CD 工作流程图,展示了主要的步骤。在实际项目中,CI 主要是提交或合并代码的时候触发,负责一些基本规则的检查,如果检查遇到失败,那么回滚或修改代码后再提交或合并,降低代码风险;CD 主要手动的触发,在CI的基础上,还负责功能检查,如果功能符合验收标准,那么就可以交付或部署。

如果更进一步看这个工作流程,可以看到 GitLab 在 DevOps 生命周期的每个阶段提供的功能:
Gitlab CI/CD概述,运维小趣,gitlab,ci/cd,java

Pipelines

Pipeline 是 CI/CD 重要组成之一。 也就是流水线,包括:

  • Jobs:也就是任务,定义了该做什么,比如:编译和测试代码;
  • Stages:也就是阶段,定义什么时候执行 Jobs,比如:在编译代码的阶段之后进入运行测试的阶段。

Job 是由 Runner 来执行,如果有足够多的并发 Runner,同一个 Stage 的 Job 可以并行执行。

如果同一个 Stage 中的所有 Job 都执行成功,Pipeline 就会进入下一个 Stage;如果一个 Stage 中的 任何一个 Job之 执行失败,Pipeline 就不会进入下一个 Stage,提前结束。

通常,Pipeline 是自动执行的,一旦创建就不需要干预。但是,有时也可以手动与 Pipeline 交互。

一般 Pipeline 包含四个 Stage(阶段),按照以下顺序执行:

  1. 一个 build(构建) 阶段,包含一个 compile 的 job;
  2. 一个 test(测试)阶段,包含两个 test1 和 test2 的 job;
  3. 一个 staging(预发) 阶段,包含一个 deploy to stage 的 job;
  4. 一个 production(生产)阶段,包含一个 deploy-to-prod 的 job。

Jobs

Job 其实就是任务,是 GitLab CI 系统中可以独立控制并运行的最小单位

  • 用约束来定义,说明在什么条件下应该执行这些约束;
  • 可以有任意名称,但是至少包含 script 元素;
  • 对定义多少没有限制。

Variables

为job执行提供的环境变量,主要分两类:

  1. CI/CD 提供了预定义好的环境变量
  2. 自定义环境变量

Cache and artifacts

cache 是 Job 下载并保存的一个或多个文件。使用相同 cahce 的后续 Job 不必再次下载文件,因此执行速度更快。即保留job结果

cache:
  1. 使用 cache 来定义每个 Job 的缓存;
  2. 后续的 Pipeline 可以使用缓存;
  3. 如果依赖相同的,同一个 Pipeline 的后续 Job 可以使用缓存;
  4. 不同的项目不能共用缓存。
artifacts:
  1. 定义每个 Job 的产物;
  2. 同一个 Pipeline 的后面 Stage 中 的后续 Job 可以使用前面 Job 的产物;
  3. 不同的项目不能共享产物;
  4. 默认情况下,产物在30天后过期。可以自定义过期时间;
  5. 如果启用了“保留最新产物”,则最新产物不会过期;
  6. 使用依赖项来控制哪些 Job 获取 产物。

cache 和 artifacts 的区别:

  1. 对依赖项使用 cache,比如从网络上下载的包。缓存存储在安装 GitLab Runner的地方,如果启用了分布式缓存,则将其安装并上传载到S3;
  2. 使用 artifacts 在 stage 之间传递中间构建结果。artifacts 由 Job 生成,存储在GitLab中,可以下载;
  3. artifacts 和 cache 都定义了它们相对于项目目录的路径,并且不能链接到项目目录之外的文件。

gitlab环境搭建

gitlab环境,主要分成两个部份,gitlab-ce(管理器)和gitlab-runner(执行器)。

## gitlab-ce安装
sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce

## 修改配置文件, 将external_url改成你可访问的地址
sudo vim /etc/gitlab/gitlab.rb
> external_url 'http://192.168.xx.xxx:6001'

## 重新加载配置,并重启动
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

## 查看运行状态
sudo gitlab-ctl status

## 查看运行日志
sudo gitlab-ctl tail

现在可以通过刚配置好的http://192.168.xx.xxx:6001进行访问了。

GitLab初次安装后,登录GitLab网页的管理员账号和密码各是什么?

  • 管理员账号的账号名为 root,
  • 密码在一个自动生成的文件 /etc/gitlab/initial_root_password 中(密码不会含空格),且会在 24 小时后自动被删除。
## 安装runner
sudo curl --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-arm64"

## 授权
sudo chmod +x /usr/local/bin/gitlab-runner

##  使用root,安装并启动
sudo su 
cd ~
gitlab-runner install --user root
gitlab-runner start

## 启动完后注册服务
## 通过 Gitlab项目首页=> setting => CI/CD => Runners => Project runners 获取token
## 填写之前gitlab-ce设置的external_url
sudo gitlab-runner register

## 激活
sudo gitlab-runner verify

Gitlab CI/CD概述,运维小趣,gitlab,ci/cd,java
编写.gitlab-ci.yml配置文件

stages:          # List of stages for jobs, and their order of execution
  - build
  - test
  - deploy

build-job:       # This job runs in the build stage, which runs first.
  stage: build
  tags:          ## 加上tag
    - sss
  script:
    - echo "Compiling the code..."
    - echo "Compile complete."

unit-test-job:   # This job runs in the test stage.
  stage: test    # It only starts when the job in the build stage completes successfully.
  tags:
    - sss
  script:
    - echo "Running unit tests... This will take about 60 seconds."
    - sleep 60
    - echo "Code coverage is 90%"

lint-test-job:   # This job also runs in the test stage.
  stage: test    # It can run at the same time as unit-test-job (in parallel).
  tags:
    - sss
  script:
    - echo "Linting code... This will take about 10 seconds."
    - sleep 10
    - echo "No lint issues found."

deploy-job:      # This job runs in the deploy stage.
  stage: deploy  # It only runs when *both* jobs in the test stage complete successfully.
  tags:
    - sss
  environment: production
  script:
    - echo "Deploying application..."
    - echo "Application successfully deployed."

Gitlab CI/CD概述,运维小趣,gitlab,ci/cd,java

主要参考

《Gitlab CI/CD 简单介绍》
《ubuntu 安装 gitlab》
《Gitlab-ci:从零开始的前端自动化部署》文章来源地址https://www.toymoban.com/news/detail-518483.html

到了这里,关于Gitlab CI/CD概述的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GitLab Runner 实现项目 CI/CD 发布

    Gitlab实现CICD的方式有很多,比如通过Jenkins,通过Gitlab Runner等,今天主要介绍后者。Gitlab在安装的时候,就默认包含了Gitlab CI的能力,但是该能力只是用于协调作业,并不能真的去执行作业,因此需要搭配Gitlab Runner来作为执行器实现具体的CICD工作。Gitlab Runner可以被安装在任

    2024年01月17日
    浏览(63)
  • DevOps系列文章之 GitLab CI/CD

    由于目前公司使用的gitlab,大部分项目使用的CICD是gitlab的CICD,少部分用的是jenkins,使用了gitlab-ci一段时间后感觉还不错,因此总结一下 介绍gitlab的CICD之前,可以先了解CICD是什么 我们的开发模式经历了如下的转变:瀑布模型-敏捷开发→DevOps(Development、Operations的组合词,是

    2024年01月22日
    浏览(56)
  • 使用gitlab 自带 CI/CD 构建部署项目

    这里我用的是桥接模式 桥接模式方便局域网内的小伙伴一起使用 如果没有这个打算可跳过这步 编辑网络 vi /etc/sysconfig/network-scripts/ifcfg-你的网络名称 修改如下内容 这里我有句话要讲, 这些信息配置完成后出现\\\"网络不可达\\\" 需要把 BOOTPROTO 改为 dhcp 详情可参考 处理网络不可达

    2024年02月12日
    浏览(63)
  • 【基于 GitLab 的 CI/CD 实践】03、GitLab Pipeline 实践(上)

    目录 一、GitLab Pipeline 流水线语法有哪些?流水线参数列表 如何检查语法错误?流水线语法检测 二、Pipeline 基础语法 job script before_script after_script stages 未定义 stages ​定义 stages 控制 stage 运行顺序   .pre .post stage variables 综合实例(一) tags allow_failure when manual 手动 delayed 延迟

    2024年02月17日
    浏览(62)
  • 纯手工搭建 GitaLab与Gitlab-CI/CD--附 gitlab-ci.yml示例

    作者:javastarboy 背景:前几年(2018 年前后)的 jenkins+docker+k8s 的CI/CD 在工作之中受益不少。提升了不少工作效率。而随着这几年的使用发现,目前 gitlab-CI/CD 在持续集成部署中更加方便、高效。 尤其是在测试环节中,研发无需编写复杂的 jenkins 脚本,只要提交代码,即可自动

    2023年04月08日
    浏览(53)
  • 【基于 GitLab 的 CI/CD 实践】02、gitlab-runner 实践

    目录 一、gitlab-runner 简介 1.1 要求 1.2 特点 二、GitLab Runner 安装 2.1 使用 GItLab 官方仓库安装 2.2 使用 deb/rpm 软件包 2.3 在容器中运行 GitLab Runner 三、GitLab Runner 注册 3.1 GitLabRunner 类型 3.2 获取 runner token 获取 shared 类型 runner token   ​获取 group 类型的 runner token   ​获取 speci

    2024年02月16日
    浏览(53)
  • docker部署gitlab CI/CD (一)第一篇:部署gitlab及汉化

    网上很多类似教程,但多少有点夹带私货,有的竟然拉取的第三方镜像,而且很多都要修改配置文件,完全不知道是为什么,于是结合其他人的博客和官方文档, 知其然也要知其所以然,于2023年4月17日写下这篇。 官方文档: https://docs.gitlab.com/ee/install/docker.html 主要参考博客

    2023年04月17日
    浏览(48)
  • gitlab+jenkins+harbor实现CI/CD(2)——初级

    git安装 jenkins主机上安装docker-ce 配置仓库证书 测试 创建项目 创建一个freestyle project 在jenkins主机获取密钥 在gitlab上传公钥 在jenkins上传私钥 输入测试命令后保存 点击立即构建 查看控制台输出 工作路径 构建触发器,定时触发 安装插件 gitlab和 Cloudbee docker 配置gitlab 在网络设

    2024年02月09日
    浏览(52)
  • 实现基于 GitLab 的数据库 CI/CD 最佳实践

    数据库变更一直是整个应用发布过程中效率最低、流程最复杂、风险最高的环节,也是 DevOps 流程中最难以攻克的阵地。那我们是否能在具体的 CI/CD 流程中,像处理代码那样处理数据库变更呢? DORA(DevOps Research Assessment)是一家专注于 DevOps 的研究机构, 在该领域以专业与客

    2024年02月07日
    浏览(97)
  • GitLab CI/CD 新书发布,助企业降本增效

    大家好,我是CSDN的 拿我格子衫来 , 昨天我的第一本书《GitLab CI/CD 从入门到实战》上架啦,这是业内第一本详细讲解GitLab CI/CD的书籍。 历经无数个日夜,最终开花结果。感触良多,今天就借这篇文章来谈一谈这本书的创作。 在正式写书前,我已经写了很多有关GitLab CI/CD的文

    2023年04月12日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包