name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v

=workflow
工作流程是您添加到倉庫的自動化過程。
工作流程由一項或多項 jobs 組成,可以計劃或由事件觸發。
工作流程可用于在 GitHub 上建構、測試、打包、釋出或部署項目。
本文例子裡,我們建立了一個名稱叫做 learn-github-actions 的 工作流。
event
事件是觸發工作流程的特定活動。 例如,當有推送送出到倉庫或者建立議題或拉取請求時,GitHub 就可能産生活動。 您還可以使用倉庫分發 web 挂鈎在發生外部事件時觸發工作流程。 有關可用于觸發工作流程的事件的完整清單,請參閱觸發工作流程的事件。
本文例子,on: [push], 意思是有代碼 push 到 Github 倉庫時,觸發該工作流。
Jobs
作業是在同一運作伺服器上執行的一組步驟的集合。 預設情況下,包含多個作業的工作流程将同時運作這些作業。 您也可以配置工作流程按順序運作作業。 例如,工作流程可以有兩個連續的任務來建構和測試代碼,其中測試作業取決于建構作業的狀态。 如果建構作業失敗,測試作業将不會運作。
本文例子,定義了一個叫做 check-bats-version 的作業。
steps
步驟是可以在作業中運作指令的單個任務。 步驟可以是操作或 shell 指令。 作業中的每個步驟在同一運作器上執行,可讓該作業中的操作互相共享資料。
一個作業可以包含多個步驟。
action 操作
操作是獨立指令,它們組合到步驟以建立作業。 操作是工作流程最小的便攜式建構塊。 您可以建立自己的操作,也可以使用 GitHub 社群建立的操作。 要在工作流程中使用操作,必須将其作為一個步驟,即放到一個 step 中去。
本文例子内包含的 actin 見下圖高亮:
runner
運作器是安裝了 GitHub Actions 運作器應用程式的伺服器。 您可以使用 GitHub 托管的運作器或托管您自己的運作器。 運作器将偵聽可用的作業,每次運作一個作業,并将進度、日志和結果報告回 GitHub。 GitHub 托管的運作器基于 Ubuntu Linux、Microsoft Windows 和 macOS,并且工作流程中的每個作業都在新的虛拟環境中運作。
本文例子的工作流,通過 yml 檔案裡的定義:
runs-on: ubuntu-latest
工作于 Github 托管的 Ubuntu 伺服器上。
代碼第7行:
- uses: actions/checkout@v2
1
uses 關鍵字訓示作業檢索名為 actions/checkout@v2 的社群操作的 v2。
這是檢出倉庫并将其下載下傳到運作器的操作,允許針對您的代碼運作操作(例如測試工具)。 隻要工作流程針對倉庫的代碼運作,或者您使用倉庫中定義的操作,您都必須使用檢出操作。
- uses: actions/setup-node@v2
with:
node-version: '14'
安裝 Node.js 運作環境到托管伺服器上,版本為 14
這個工作流邏輯的可視化版本如下: