GitLab管线简介

252 阅读5分钟

GitLab Pipeline

GitLab流水线简介

当几项工作在代码的帮助下以流水线的形式逐级执行时,就称为Gitlab流水线。一个阶段可以有许多工作,这些工作是平行执行的,如果成功了,就进入下一个阶段。如果流水线失败了,用户应该调查作业失败的问题并加以纠正,以便流水线能够执行到下一个阶段。管线对于一个项目来说非常重要,它包括在工作环境中构建、测试和部署作业,而这些作业则取决于用户。

GitLab管线的类型

Gitlab流水线有三种类型,如CI流水线、部署流水线和项目流水线。虽然这些被称为类型,但它们都属于一个管道,如果不把这三种类型纳入管道,我们就无法运行管道。

CI管线

持续集成管道涉及到从头开始构建一些东西,并在开发环境中测试这些东西。开发人员可能会在构建应用程序并将其推入生产后添加一些东西。这可以在持续集成的帮助下完成,我们可以在它部署后添加代码。这个阶段也包括测试,我们可以在代码中使用不同的方法进行测试。

部署管线

这个管道有助于将代码或任何应用程序部署到暂存环境或生产中。这个管道的目的是在持续集成和测试后将代码推送到用户选择的任何环境中。部署管道可以是自动化的,一旦代码进入暂存环境,我们就可以根据我们的要求和时间表将其推送到生产环境。代码从开发环境中取出,因为它已经被CI管道放置。

项目管线

在同一个Gitlab上可能会有不同的项目在运行,这可能会使用户对要触发的管道感到困惑。项目管线有助于描述项目和代码的依赖关系,从而帮助理解项目。管道中使用的API是自动触发的,这特别适用于微服务。这也有助于用户了解管道在部署方面是如何从一个阶段转移到另一个阶段的。

GIT Pipeline 1

开发工作流程

有各种类型的工作流程,如分支流程、基于主干的流程和基于分叉的流程。

分支流程

为每个任务创建一个单独的分支,当这些任务准备合并到管道中时,为管道创建一个合并请求。这有助于使工作流程连续进行,而不与主要分支发生任何合并冲突。因此,开发人员可以在不同的分支上工作,而主分支上只有经过测试的代码,从而使持续集成对开发人员来说很容易。当分支被赋予适当的名称时,就很容易跟踪这些分支,使开发者的工作变得轻松。

基于主干的流程

在这种工作流程中,只有一个分支,它可能是所有开发人员都在工作的主分支。这里的代码是实时合并的,因此不需要等待其他开发者将其合并到主分支中。有时,开发人员会创建短期的功能分支,一旦编码完成,就会被合并到主分支中,使开发持续进行,因为合并冲突较少。这就为开发者节省了时间,代码也会在很短的时间内投入生产。

基于分叉的流程

分叉工作流程与其他两个工作流程不同,开发者在工作系统中拥有自己的私有仓库。开发者在开发完代码后不需要将其推送到主分支,因为一旦提交到中央仓库,代码就会被推送。这使得公共服务器上的工作变得非常容易。开发者不需要写权限就可以进行提交,维护者可以接受开发者的提交并将其代码合并到仓库中。分支系统与其他工作流程类似,分支被直接合并到中央仓库。这是一个分布式的工作流程,适合于任何开源项目。

管线的可视化

我们可以在Gitlab的管道选项卡中看到管道状态,该选项卡向我们展示了为不同项目运行的不同管道。管线通过进入管线的细节来显示工作状态。管道的状态有助于我们了解作业是否成功。

GIT Pipeline 2

通过点击管道,可以看到管道的所有相关工作。我们可以跟踪管道,如果需要,我们可以删除同一管道的记录。有管道图显示时间长度,管道的状态和管道的细节。此外,我们还有管道小工具来查看管道的合并和提交请求。管线的整体状态可以从Gitlab页面的作业视图中看到。

GIT Pipeline 3

管线图还可以帮助我们在需要时延迟作业,将经常发生的实例归入同一管线,并将其可视化以了解状态。我们可以根据优先级对工作进行排序,并为每个管道设置时间线。

GIT Pipeline 4

GitLab管线

1.在GitLab中创建一个项目并将其设置为私有或公共。

GIT Pipeline 5

image

2.2. 现在应该把服务器保存到GitLab runner中,这样在这里运行的所有工作都会有CI/CD配置。为服务器和docker组添加用户以及SSH密钥。现在,gitlab-ci.yml文件必须配置不同阶段的作业。所有这些都必须是PowerShell格式的。这是第一条Gitlab流水线,接下来的过程将如上所述。

image 1

image 2

总结

在公共服务器上工作时,我们可能需要回滚Git流水线以弥补缺陷,这可以在项目概览中完成。Git流水线改变了开发者的工作模式,使现有的开发者和新来者的工作都变得简单。