GitHub Actions与CI/CD实践指南

软件开发过程中,频繁的代码变更被推送到主分支,同时确保这些变更不会影响并行工作的其他开发者的代码,这是一项挑战。持续集成/持续部署(CI/CD)提供了一种平滑且方便的管理方式。本文将探讨如何借助GitHub Actions实现CI/CD,以自动化构建、测试和部署代码流程。

GitHub Actions通过YAML语法定义事件、作业和步骤,这些文件存储在GitHub工作流中,每当代码被推送时,会自动触发一系列命令。以下是CI/CD管道的各个阶段:

构建阶段:在这个阶段,将编译代码。

测试阶段:在这个阶段,将测试代码。通过自动化技术,可以节省人力和时间。

发布阶段:在这个阶段,将在GitHub仓库中发布应用程序。

部署阶段:在这个阶段,将应用程序部署到生产环境。

验证和合规性:验证构建的步骤由组织的需求决定。

GitHub Actions是GitHub提供的一种自动化软件开发生命周期中任务的工具。它们是事件驱动的,即在指定事件发生后运行一系列命令。GitHub Actions可以自动运行软件测试脚本,事件自动触发工作流,工作流包含作业。作业使用步骤控制操作的执行顺序。工作流是添加到仓库的自动化过程。工作流可以是一个或多个作业,可以被安排或由事件触发。可以使用工作流在GitHub上构建、测试、打包、发布或部署项目。作业是在同一运行器上执行的一系列步骤。默认情况下,具有多个作业的工作流将并行运行这些作业。

要开始使用GitHub Actions进行CI/CD,首先需要创建一个新的仓库。克隆该仓库到机器上。然后,打开命令行工具,打开克隆的仓库,并将应用程序推送到那里。一旦应用程序代码在仓库中,就可以开始在GitHub Actions中创建工作流。工作流可以根据需求或项目的不同而变化。

以下是完整的工作流详细步骤:

  1. 点击仓库导航栏上的Actions按钮。
  2. 选择想要应用的工作流(GitHub会根据代码自动推荐工作流)。例如,对于React项目,选择Node.js包。
  3. 现在,可以看到创建了一个工作流文件,这是一个YML文件。可以直接编辑文件来包含依赖项、需要执行的作业步骤和命令,以便在一切顺利的情况下进行部署
  4. 编辑XML文件后,点击开始提交->提交。
  5. 将看到构建失败了,因为还没有为Git Actions安装任何运行器。要解决这个问题,点击设置->Actions(在侧导航栏上)。
  6. 滚动到底部并点击添加运行器。
  7. 现在,一系列命令出现以运行运行器。打开命令提示符(以便可以运行这些命令)或工作的任何终端,并转到项目目录。同时,在GitHub上,根据需要选择命令。
  8. 创建一个actions-runner文件夹并进入它,在终端运行。使用的命令是mkdir actions-runner和cd actions-runner。
  9. 现在通过运行GitHub上给定的命令下载最新的运行器包。将看到以下屏幕。
  10. 接下来,通过运行上述命令配置文件。使用GitHub提供的令牌号连接到GitHub。已经完成了GitHub Actions的设置。将看到以下消息:运行器现在在线。
  11. 已经构建了一个运行器,但在GitHub上,将看到运行器是离线的。要使运行器在线,运行上述给定的最后一行,即在Windows上运行./run.cmd。现在可以看到运行器是空闲的(运行或在线)。
  12. 现在,准备完成CI/CD流程。转到Actions->最新工作流->右上角,点击运行所有作业。持续集成正在进行。
  13. 在右侧的构建选项上查看进度需要一些时间。可以看到构建正在进行,应用程序自动部署。
  1. 设置作业:这一步允许设置所需的环境和包。
  2. 运行操作检查:AUTH令牌保留在本地git配置中。它使脚本能够运行经过身份验证的git命令。将在作业后清理中移除令牌。
  3. 运行subosito/flutter-action:此操作为活跃使用创建flutter环境。它在Linux、Windows和macOS上工作。
  4. 安装依赖项:使用安装依赖项来安装项目的依赖项。运行flutter pub get以确保依赖项是最新的。
  5. 分析:通过运行所有支持的静态代码分析工具,分析每个提交或拉取请求,这些工具适用于仓库中找到的语言。
  6. 格式化:它运行运行flutter format命令。后运行Actions/ setup java@v1一个简单的GitHub操作,允许在工作流作业结束后运行后运行步骤。
  7. 完成作业:查看触发工作流的事件,以获取可用于触发工作流的事件的完整列表。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485