1. 程式人生 > 其它 >一個最簡單的 Github workflow 例子

一個最簡單的 Github workflow 例子

原始碼:

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

uses 關鍵字指示作業檢索名為 actions/checkout@v2 的社群操作的 v2。

這是檢出倉庫並將其下載到執行器的操作,允許針對您的程式碼執行操作(例如測試工具)。 只要工作流程針對倉庫的程式碼執行,或者您使用倉庫中定義的操作,您都必須使用檢出操作。

- uses: actions/setup-node@v2
        with:
          node-version: '14'

安裝 Node.js 執行環境到託管伺服器上,版本為 14

這個工作流邏輯的視覺化版本如下:

更多Jerry的原創文章,盡在:"汪子熙":