GitHub 新出的 Actions 是什麼? 用他作自動測試?

體驗分享

本文一個嚐鮮的體驗分享, 並無太複雜的技巧, 作了一個最少代碼的例子展現, 讓每一個人均可以把action用起來, 若是路過的大牛有高級技巧請留言分享, 我會補充. 下面正文開始.php

是什麼?

是一個免費的操做系統容器(Linux/Windows/macOS), 咱們可讓他預裝開發環境(node/php/python...). 注: 後面的文章假設咱們選了一臺裝有nodejs的linux服務器.node

有什麼用?

咱們能夠上傳(git push)代碼, 而後在他的nodejs中執行, 若是咱們寫的代碼中有測試腳本, 那麼他執行完畢後會給咱們一個圖標反饋到github的提交記錄, 以下圖: python

若是代碼執行出現錯誤, 會反饋一個 紅色的"x"圖標.

怎麼用?

進入action頁面

如今任何倉庫都多了一個action按鈕, 如圖: linux

選擇須要的環境

第一次進入會讓咱們選擇開發環境, 這裏我選擇了nodejs, 點擊對應的"Set up this workflow"按鈕, 如圖:git

告訴action你要幹什麼

點擊後咱們進入了編輯界面, 在這裏咱們要告訴"action"他要作什麼, 如圖: github

若是仔細觀察你會發現: 這個編輯界面對應的是一個文件, 咱們根目錄下多了一個".github/workflows/nodejs.yml", 咱們對 action的設置都會存儲在這裏, 下次修改咱們直接編輯這個文件便可.

解釋下配置文件

name: Node CI

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@master
    - name: Use Node.js 10.x
      uses: actions/setup-node@v1
    - name: test
      run: |
        npm i
        npm run test:rules

複製代碼

name

顯示標題, 運行時顯示, 沒太大意義.shell

on

看到on就想到事件觸發, 是的他能夠註冊對git動做的監視, 好比監視倉庫的push/pull_request等動做, 想了解更多動做解釋看文檔npm

好比設置監視多個動做:ubuntu

on: [push, pull_request]
複製代碼

還能夠針對分支來監控windows

on:
  push:
    branches:
    - develop
複製代碼

jobs

這個是核心功能了, 在這裏咱們要告訴action作什麼,

jobs.id

其下的 "build" 字段暫時可理解成id, 咱們能夠改爲其餘名字好比"test", 若是有多個可讓多個job並行, 可是id不能相同. 注: 文檔中有個needs字段可設置依賴執行, 我還沒實踐他, 若是這篇看的人多, 我研究下而後在寫第二篇補充下 😋)

jobs.id.run-on

表示運行的操做系統, ubuntu-latest表明最新版本的Ubuntu, 也能夠指定版本號, 根據文檔提示action支持以下系統:

  • ubuntu-latest, ubuntu-18.04, or ubuntu-16.04
  • windows-latest, windows-2019, or windows-2016
  • macOS-latest or macOS-10.14
jobs.id.steps

設置動做, 也就是action的核心功能.

jobs.id.steps.name

用來設置每步動做的顯示標題, 運行時顯示, 能夠隨意寫.

jobs.id.steps.uses

能夠執行一些action封裝好的動做:

  1. uses: actions/checkout@master, 拉取代碼.
  2. actions/setup-node@v1, 初始化node環境.
jobs.id.steps.run

執行命令

  1. 安裝包: npm run test:rules
  2. 執行咱們寫好的測試命令 npm run test:rules

執行結果

在action中咱們能夠看到咱們寫的腳本被執行了, 若是執行沒有報錯那麼就會提示咱們"成功", 用"綠色"表示.

查看真實項目

總結

好了就寫這麼多吧, 也是初用, 寫的時候也是戰戰兢兢, 怕發佈的時候被大牛噴, 不過真的很喜歡action, 仍是想寫個文章推廣下, 拋磚引玉. 謝謝你們的閱讀.

相關文章
相關標籤/搜索