如何使用 Github Action 管理 Issue

前言

很多小夥伴打開 github 上的倉庫都只使用Code查看代碼,或者只是把 github 當成一個代碼倉庫,但是 github 還提供了很多好用的功能。

其中,GitHub Action 就是一個很好用的功能,本文將通過幾個管理Issue的示例帶大家瞭解 GitHub Action:

什麼是 Github Action

github 給所有用戶都提供了臨時可用的虛擬機, 我們通過創建 github action 工作流來使用這個虛擬機. 我們可以使用它來實現自動化部署、自動化測試、代碼檢查、管理 Issues...

使用步驟

在學習之前還需要準備一些資料:

  1. Github Action 文檔

  2. 官方倉庫中有很多可以複用的 Action, 通過uses字段引用就可以直接使用了。

  3. 阮一峯的 YAML 教程;

也推薦大家使用 Vscode GitHub Action 插件,這個插件在登錄後可以用來做語法校驗,還能查看運行過的記錄。

除了這些資料之外還有些基礎概念需要了解:

  1. 事件: 在工作流中可以監聽 github 的一些事件, 在事件觸發後執行我們定義的工作流;

  2. 上下文: github 上下文包含有關工作流運行和觸發運行的事件的信息,可以讀取環境變量中的大多數 github 上下文數據,並允許我們通過變量訪問這些數據。

  3. 變量: 變量提供了一種存儲和重用非敏感配置信息的方法。 可以將任何配置數據(如編譯器標誌、用戶名或服務器名稱)存儲爲變量。 變量在運行工作流的運行器計算機上插值。 在操作或工作流步驟中運行的命令可以創建、讀取和修改變量。

  4. 表達式: 可以使用表達式來運算工作流程文件中的變量。

  5. 祕鑰: 普通變量中存儲的信息並不安全,很容易泄露,一些需要保密的信息就可以存儲到祕鑰中。

如果不想去從頭學習yml語法, 可以先了解一些yml的基礎用法:


下面開始介紹 GitHub Action 的用法

使用 github Action ,第一步需要在項目根目錄下創建.github/workflows文件夾, 所有的工作流文件都要放到這個文件夾,當事件觸發時會自動執行;

大家可以通過這個 workflow 文件示例來簡單瞭解下各個字段的用處:

name: build # workflow的名稱,缺省時會使用文件名
on: # workflow監聽事件
  push # 具體的事件
    branches: # 在這些分支上纔會觸發
      - main
      - 'mona/octocat'
      - 'releases/**'
jobs: # 執行的工作的集合
  build: # ‘build’是一個自定義的工作的id<job_id>
    name: rele # 當前工作的名稱
    runs-on: ubuntu-latest # 因爲工作實際是運行在虛擬機上的,runs-on就是指定虛擬機的版本
    steps: # steps是步驟的集合
    - name: checkout # name是指定當前工作的名稱 在workflow(工作流)文件的steps中,每個用‘-’代替縮進視爲一個步驟的開始
      uses: actions/checkout@v2 # uses字段是選擇一個可以直接複用的action,並且在github action store中的action可以直接使用,不需要下載
    - name: setting env
      id: setting # id 是步驟的唯一標識符,可以使用 id 在上下文中引用該步驟
      env: # 設置環境變量
        NODEV: 18
      run: echo "nodev=$NODEV" >> $GITHUB_OUTPUT # run字段會在命令行執行一條命令,這個命令是將"nodev=18"寫入到$GITHUB_OUTPUT,這樣可以爲'output'添加test屬性值爲test1,詳情參考
    - name: addnode
      uses: actions/setup-node@v3 # 使用node環境
      with: # 爲‘uses’使用的action傳遞參數
        node-version: ${{steps.setting.output.nodev}} # 使用上面設置的變量

在編寫工作流文件之前有兩件事要做:

一. 可以在 github 或者 github action 的倉庫裏查找公用 action. 這樣可以減少很多工作量:

常用的 action 有:

二. 如果沒有設置 action 的讀寫權限,第一次運行會報錯: 設置權限:

再次運行:

下面通過一些具體示例給大家介紹一些Github Action的用法:

結語

通過使用 Github Action 來管理 Issue,可以有效的提高生產力和效率,在自動化、協作、代碼質量管理等方面都有提升,並幫助我們更好地組織和管理問題。文章篇幅有限,我們暫且介紹到這裏,感興趣的小夥伴們可以再自行探索。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/OSFYVnhtCsvfvRCP3VPJww