首頁 > 後端開發 > C++ > 主體

與 GitHub Actions 持續集成

DDD
發布: 2024-11-22 07:15:16
原創
221 人瀏覽過

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板