過去幾天,我們專注於 RSS 閱讀器的設計、開發和單元測試。今天我們將轉向一個非常關鍵的開發實踐:持續整合(Continuous Integration,簡稱CI)。持續整合不僅是現代軟體開發的標配,它也為我們帶來許多不可或缺的好處。CI 確保了每一次代碼更改都會被自動測試,這樣可以早期發現問題,提高軟體品質和可靠性。
CI 系統像一個警戒一直在背後的守護者,它會自動檢查新提交的代碼是否會破壞已有的功能或引入新的錯誤。這不僅減少了人工測試的需要,還加速了開發過程,讓開發團隊能更專注於新功能的開發。
今天,我們將學習如何在 GitHub Actions 中設定基本的 CI 流程。我們會先專注於 CI 部分,並將 publish 和 deploy 階段留給未來的文章。
你可能會好奇,明明我們前幾天跟 DevOps 一起提到的概念叫做 "CI/CD",但是為什麼我們現在只實作 CI(持續整合)流程,怎麼不順便做一下 CD(持續部署)呢?其實,答案相當簡單,但也很重要。
簡單來說,我們現階段還沒有完全準備好進行部署的所有細節。更具體地說,我們目前還沒有實作 Dockerfile 以及還沒有設置部署的生產環境。因此,我們,嗯,先略過 CD 的部分。
.github/workflows/main.yml
?.github/workflows/main.yml
是 GitHub Actions 的配置檔案。通過這個檔案,我們可以精確地定義 CI/CD 管道:哪些任務應該在何時運行,以及這些任務的執行條件。
這份配置檔案採用 YAML 格式。其主要結構如下:
name: CI
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-22.04
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: "1.20"
- name: Run tests
run: go test
name
: 定義流程名稱。on
: 觸發條件。這裡是當代碼被推送到 main
分支。jobs
: 包含一個或多個任務。
build
: 任務名稱。runs-on
: 執行環境,這裡是 Ubuntu 22.04。steps
: 運行的步驟。.github/workflows/
文件夾。main.yml
檔案。main.yml
。一旦這些變更被推送到 main
分支,GitHub Actions 將自動啟動 CI 流程。
今天,我們著重探討了如何利用 GitHub Actions 配置基本的 CI 流程。在接下來的文章中,我們將進一步講解如何觀察這些自動化測試的結果,以及如何進行後續的發佈和部署。