協助開發者自動化軟體開發的工作流程,自動完成檔案上傳、測試機.....的工具,成功或失敗都會通知。
白話的說就是:「原本手工要做完的事情,改用電腦自動幫你完成。」
重點就是要簡化並自動化繁瑣的工作,尤其是大型專案、遊戲專案,這類需要頻繁修改與測試的專案,幫助開發者提高工作效率,減少錯誤,並確保程式的品質和穩定性。
在系統每一次變動時,能持續且自動地進行驗證,確保程式碼品質和可建置性。
每一次程式碼提交會觸發自動測試和驗證過程,也有助於多人協作時能最大限度地減少程式碼衝突的可能性,並主動回報錯誤。
其行為包含:
程式碼在 CI 流程完成驗證後,透過自動化方式,部署到任何環境。
保持每次更新程式都可順暢完成,和確保服務存活。
其行為包含:
新增資料夾 .github/workflows
新增 .yaml
檔
設定好 github repository 遠端倉庫,在每一次 git commit
、git push
後會直接執行 GitHub Actions。
YAML 是一種 data serialisation 語言,可讀性高,GitHub Actions 的 workflow 以 YAML 檔案進行設定(副檔名為.yml
或.yaml
)。
name
: Workflow 名稱,也是在 Action 操作頁面中,工作流程清單的顯示名稱;如果沒有設定名稱,則會以文件路徑 + 檔案名稱
命名。
on
: 必填,觸發在 workflow 的 Event 名稱,可以設定為每當有程式被推送(push)到倉庫時觸發。
job
: 定義 workflow 的任務,預設情況下是平行(並行)執行,例如: build、testing,進而設定循序執行。
runs-on
: 設定任務執行的環境,例如: ubuntu-latest、window-latest。
step
:定義了任務中要執行的步驟。step 內不一定只能執行 action,但 action要作為 step 執行。每個步驟皆在 Runner 上執行,可以存取資料區與文件系統。
name: Test
on:
push:
branches: ["main"]
jobs:
build:
name: build
runs-on: ubuntu-latest
steps:
- name: Checkout to Repo Directory
uses: actions/checkout@v2
- name: Use Node.js 18.16.0
uses: actions/setup-node@v2
with:
node-version: "18.16.0"
- name: NPM ci and cacheing
uses: bahmutov/npm-install@v1
with:
useRollingCache: true
Workflow syntax for GitHub Actions