📜  持续集成和持续开发(CI/CD)

📅  最后修改于: 2021-10-24 12:54:24             🧑  作者: Mango

持续集成和持续开发(CI/CD)是一种新的方法论,因其特点在软件行业中获得了巨大的空间,并在较短的时间内得到了普及。但是,有许多公司已经使用这种方法开始了软件开发过程,而其他公司也在采用这种方法。 CI/CD 有很多优点,吸引了开发人员和软件行业,其中一些优点如下:

  • 速度:持续集成意味着通过即时反馈快速
  • 准确性:将自动化应用于部署过程是一个很好的起点
  • 可靠性:拥有可靠的 CI/CD 管道可以显着提高构建和部署新提交的速度
  • 较小的代码更改:使用持续测试,这些小片段一旦集成到代码存储库中就可以进行测试
  • 更快的发布率:更快地检测到故障,因此可以更快地修复,从而提高发布率

CI/CD 的阶段

CI/CD 没有明确的阶段。但是,CI/CD 是一种非常灵活的方法,开发人员可以根据自己的选择设置这些阶段。以下是一些 CI/CD 阶段的标准选择,这些都在管道中,如果前一个阶段失败,则不会进入下一个阶段。

  1. 版本控制:用于管理代码、文档等的变化,例如 GitLab、GitHub、TFS 等。
  2. 构建:此阶段构建软件产品的解决方案并存储工件
  3. 单元测试:成功后 在第 2 阶段构建解决方案,如果有的话,它将进行单元测试。
  4. 部署:在成功构建和单元测试阶段后,将在临时环境中部署解决方案。
  5. 自动化测试:此阶段将运行所有自动化测试,以验证产品在部署到生产之前能够满足所有要求。
  6. 部署到生产:在成功运行所有测试用例和验证后,现在这个阶段将在生产环境中部署产品。

有许多可用的软件工具提供 CI/CD 的实现,下面是一些软件工具,开发人员或公司可以选择使用这些工具,每个工具都有自己的特点:

  • Jenkins
  • 圈子
  • 团队城市
  • 竹子
  • GitLab

GitLab CI/CD 要求

可以有任何软件工具来实现如上所述的 CI/CD。然而,GitLab 以灵活的方式提供 CI/CD 实现,无需太多知识或其他额外软件,任何对软件开发有一些基本知识的人都可以轻松地使用 GitLab 设置 CI/CD 配置。以下是一些要求:

  1. 版本控制:GitLab 本身就是实现 CI/CD 的版本控制
  2. GitLab Runner:它是实现 CI/CD 的重要工具,需要在任何 CI/CD 配置之前安装它。当有人提交更改时,它会为 GitLab 挑选并执行作业。 Runner 有两种类型——共享 Runner 和特定 Runner。
    • 共享运行器:这些运行器在同一个运行器上执行不同项目的代码,并在您有多个具有相似要求的作业时使用共享运行器。
    • 特定运行器:它是一个单独的运行器,每个项目将由一个单独的运行器执行,并由唯一从事该特定项目的开发人员管理。
  3. GitLab Runner Executors: GitLab Runner 实现了许多可用于在不同场景中运行构建的执行器。 GitLab 中提供了几种执行器,可以根据项目的要求或软件工具的可用性来实现。一些执行者如下:
    • SSH: SSH 执行器仅支持在 Bash 中生成的脚本,目前不支持缓存功能。这是一个简单的执行器,允许您通过 SSH 执行命令在远程机器上执行构建。
    • Shell: Shell 是配置最简单的执行器。构建所需的所有依赖项都需要在安装 Runner 的同一台机器上手动安装。
    • Parallels:此执行器配置与 Virtual Box 一起使用。
    • VirtualBox:这种类型的执行器允许使用已经创建的虚拟机,该虚拟机被克隆并用于运行您的构建。
    • Docker:一个很好的选择是使用 Docker,因为它允许一个干净的构建环境,并且具有简单的依赖项管理(用于构建项目的所有依赖项都可以放在 Docker 镜像中)。
    • Docker Machine(自动缩放): Docker Machine 是一个特殊版本的 Docker 执行器,支持自动缩放。它的工作方式类似于普通的 Docker 执行器,但通过 Docker Machine 按需创建构建主机。
    • Kubernetes executor: Kubernetes executor 允许使用现有的 Kubernetes 集群进行构建。
    • 自定义执行器:自定义执行器允许指定您自己的执行环境。
  4. Yml 文件:运行 CI/CD 需要 Yml 文件,它需要存储在项目的源文件中,它包括每个技术和收益方法的配置。     

亚搏体育应用跑步者窗口

按照以下步骤,在 Windows 上下载 GitLab Runner,并通过命令进行验证和注册。

1. 从 https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-windows-386.exe 下载 GitLab runner 2. 在本地目录中创建一个文件夹(例如 C :\GitLab-Runner) 并将下载的文件重命名为 gitlab-runner.exe,存放在此文件夹中。

3. 输入以下命令,验证并注册它。

GitLab 运行命令

如果系统中已经安装了GitLab Runner,则有很多命令,例如启动GitLab Runner、停止GitLab Runner、注册等。

  Command Description 
gitlab-runner.exe register Register the project with CI/CD
gitlab-runner.exe start Start the runner 
gitlab-runner.exe stop Stop the runner 
gitlab-runner.exe status To know the status of gitlab-runner 
gitlab-runner unregister –name  test-runner   Unregister Runner of a project and replace test-runner with your runner name and this name can be found inside the config.toml file (where your gitlab.exe) available.
gitlab-runner unregister –url http://gitlab.example.com/ –token t0k3n Remove Runner by URL and token 
gitlab-runner unregister –all-runners Unregister All Runners
gitlab-runner restart This command stops and then starts the GitLab Runner service
gitlab-runner uninstall This command stops and uninstalls the GitLab Runner from being run as a service
gitlab-runner exec To see a list of available executors, run
gitlab-runner –help Check a recent list of commands by executing
gitlab-runner run –help can see the name of the environment variable
gitlab-runner –debug To run a command in debug mode
gitlab-runner exec shell To see a list of all available options for the shell executor, run

GitLab Runner Linux

按照以下步骤在 Linux 环境中下载 GitLab Runner 并通过以下命令验证和注册项目。

  1. sudo curl -L –output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64 [只需下载二进制文件之一为您的系统]
  2. sudo chmod +x /usr/local/bin/gitlab-runner [给它执行权限]
  3. sudo useradd –comment ‘GitLab Runner’ –create-home gitlab-runner –shell /bin/bash [创建一个 GitLab CI 用户]
  4. sudo gitlab-runner install –user=gitlab-runner –working-directory=/home/gitlab-runner [安装并作为服务运行]
  5. 须藤 gitlab-runner 开始
  6. 安装成功后,GitLab Runner 启动,可以执行存储库的注册。
Command Description 
sudo gitlab-runner register Register the project with CI/CD
sudo gitlab-runner start Start the runner 
sudo gitlab-runner stop Stop the runner 
sudo gitlab-runner status To know the status of gitlab-runner 
sudo gitlab-runner unregister –name  test-runner   Unregister Runner of a project and replace test-runner with your runner name and this name can be found inside the config.toml file (where your gitlab.exe) available
sudo gitlab-runner unregister –url http://gitlab.example.com/ –token  Remove Runner by Url and token 
sudo gitlab-runner unregister –all-runners Unregister All Runners
sudo gitlab-runner restart This command stops and then starts the GitLab Runner service
sudo gitlab-runner uninstall This command stops and uninstalls the GitLab Runner from being run as a service
sudo gitlab-runner exec To see a list of available executors, run
sudo gitlab-runner –help Check a recent list of commands by executing
sudo gitlab-runner run –help Can see the name of the environment variable
sudo gitlab-runner –debug To run a command in debug mode
sudo gitlab-runner exec shell To see a list of all available options for the shell executor, run

CI/CD Windows 项目配置

按照以下步骤使用 Windows 环境项目配置 CI/CD:

  1. 转到下载的 gitlab-runner .exe 路径,您将它存储在其中,然后打开命令提示符。 (按照上面的windows命令)
  2. 检查 gitlab-runner 状态,如果它已经在运行,则在使用 CI/CD 注册任何新项目之前停止它
  3. 现在输入 gitlab-runner.exe register 并填写以下详细信息
  4. 输入您的 GitLab 实例 URL:转到 GitLab 帐户 -> 选择要实施CI/CD 的项目 -> 设置 -> CI/CD
  5. 输入此运行程序的 gitlab-ci 令牌:转到 GitLab 帐户 -> 选择要实施CI/CD 的项目 -> 设置 -> CI/CD
  6. 输入此跑步者的 gitlab-ci 描述:输入任何名称(例如:MyRunner1),这只是为了记住哪个跑步者正在运行。
  7. 输入此运行程序的 gitlab-ci 标签:这是启动 CI/CD 的标签,可以输入任何名称或不需要名称(例如:my-tag、another-tag)
  8. 进入执行器:需要从上面给出的执行器列表中选择一个执行器,每个执行器都有自己的特点。
  9. 现在项目注册成功并启动GitLab runner。

CI/CD Linux 项目配置

按照以下步骤使用 Linux 项目配置 CI/CD。

  1. 转到您安装了 GitLab Runner 和 Git 的 Linux 机器
  2. 检查 GitLab 运行程序状态,如果它已经在运行,请在注册任何新项目之前停止它
  3. 输入 sudo gitlab-runner register -> 用 CI/CD 注册新项目
  4. 现在按照以下所有步骤,与 Windows 相同,并填写所需信息

在源代码中添加 Yml 文件

这是将 yml 文件包含到您的源代码目录中的重要步骤,如果您不包含它,CI/CD 将无法工作。此文件包含此项目将如何运行的配置。