首页 > 后端开发 > C++ > 与 GitHub Actions 持续集成

与 GitHub Actions 持续集成

DDD
发布: 2024-11-22 07:15:16
原创
287 人浏览过

Continuous Integration with GitHub Actions

介绍

在 DPS909 的实验 8 中,我探索了 持续集成 (CI) 的力量,特别是通过 GitHub Actions。这个实验室是一个很好的机会,可以通过自动化测试、确保质量控制以及学习将工作流程集成到现实世界的开发实践中来增强我的项目。

CI 确保代码在每次更改时都保持功能正常且无错误。它可以防止通过连续运行测试来破坏默认分支。在这个实验室中,我不仅将 CI 集成到我自己的项目中,还为我合作伙伴的项目提供了测试。这篇博文反映了我完成这些任务的过程。


为我的项目设置 GitHub Actions

为了在我的项目中设置 CI,我创建了一个 GitHub Actions 工作流。此工作流程在以下情况下触发:

  • 已向主分支推送。
  • 已创建针对主分支的拉取请求。

YAML 工作流配置

下面是我用于 GitHub Actions 工作流程的 YAML 文件:

name: CI Workflow

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  build-and-test:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Set up C++
        uses: actions/setup-cpp@v1
        with:
          compiler: gcc

      - name: Build the project
        run: |
          mkdir build
          cd build
          cmake ..
          make

      - name: Run Tests
        run: |
          cd build
          ctest
登录后复制

此工作流程检查我的存储库,使用 CMake 构建项目,并运行我在实验室 7 中编写的测试。


使用拉取请求测试 CI

为了确保工作流程按预期工作,我:

  1. 创建了一个新分支,添加更多测试。
  2. 为我的项目中的不同功能添加了新测试。
  3. 将分支推送到我的存储库并打开针对主分支的拉取请求。

CI 工作流程按预期运行:

  • 最初,我故意破坏了其中一个测试来观察失败。日志清楚地显示了问题,这使得调试变得简单。
  • 修复测试后,CI 通过,确认工作流程成功。

将此拉取请求合并到主分支让我确信我的项目不会出现无意的错误。


为合作伙伴的项目提供测试

在实验室的第二部分,我与我的同学 Inder Parmar 合作,并向他们的存储库 Tailor4Job 贡献了测试。

我的请求请求:#11

  • 任务:我为其 jobFilter 函数添加了一个测试用例,以确保它正确处理边缘情况。
  • 挑战:他们的存储库使用了与我不同的框架和设置。了解他们的测试工具和项目结构需要一些时间。
  • 结果:我的拉取请求成功通过了他们的 CI 工作流程。这次经历教会了我编写符合项目现有结构和指南的测试的重要性。

对持续集成的反思

设置 CI 改变了我的开发工作流程。以下是一些要点:

  • 主动错误预防:CI 确保尽早发现错误,降低破坏默认分支的风险。
  • 易于协作:自动化测试在合并多个开发人员的代码时提供信心。
  • 改进的调试:CI 日志提供了对测试失败的详细见解,使调试更快、更高效。

在合作伙伴的存储库上进行协作是一次丰富的经历,因为它让我接触到了不同的代码库、测试环境和工作流程。


可选挑战

虽然我没有完全实现可选挑战,但我探索了:

  1. 添加 Linter:作为 CI 的一部分自动进行 linting 有助于及早发现样式和语法问题。
  2. 开发容器:我尝试使用 Docker 和 Codespaces 设置可重现的开发环境。

这些步骤可以进一步提高项目质量和新贡献者的入职便利性。


结论

实验 8 教会了我将 CI 工作流程集成到开发项目中的重要性。 CI 确保一致的质量控制并促进协作,使其成为现代软件开发中的宝贵工具。

您可以在下面查看我的项目成功的 CI 运行以及对我合作伙伴项目的拉取请求:

  • CI 工作流程运行:GitHub 操作
  • 合作伙伴的回购 PR:拉取请求 #11

这个实验室真正增强了我对开源开发中的自动化、测试和协作的理解。

以上是与 GitHub Actions 持续集成的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板