體驗分享
本文一個嘗鮮的體驗分享, 并沒有太復雜的技巧, 做了一個最少代碼的例子展示, 讓每個人都可以把action用起來, 如果路過的大牛有高級技巧請留言分享, 我會補充. 下面正文開始.
是什么?
是一個免費的操作系統容器(Linux/Windows/macOS), 我們可以讓他預裝開發環境(node/php/python...).
注: 后面的文章假設我們選了一臺裝有nodejs的linux服務器.
有什么用?
我們可以上傳(git push)代碼, 然后在他的nodejs中執行, 如果我們寫的代碼中有測試腳本, 那么他執行完畢后會給我們一個圖標反饋到github的提交記錄, 如下圖:
如果代碼執行出現錯誤, 會反饋一個紅色的"x"圖標.
怎么用?
進入action頁面
現在任何倉庫都多了一個action按鈕, 如圖:
選擇需要的環境
第一次進入會讓我們選擇開發環境, 這里我選擇了nodejs, 點擊對應的"Set up this workflow"按鈕, 如圖:
告訴action你要干什么
點擊后我們進入了編輯界面, 在這里我們要告訴"action"他要做什么, 如圖:
如果仔細觀察你會發現: 這個編輯界面對應的是一個文件, 我們根目錄下多了一個".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
顯示標題, 運行時顯示, 沒太大意義.
on
看到on就想到事件觸發, 是的他可以注冊對git動作的監視, 比如監視倉庫的push/pull_request等動作, 想了解更多動作解釋看文檔
比如設置監視多個動作:
on: [push, pull_request]
還可以針對分支來監控
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封裝好的動作:
- uses: actions/checkout@master, 拉取代碼.
- actions/setup-node@v1, 初始化node環境.
jobs.id.steps.run
執行命令
- 安裝包: npm run test:rules
- 執行我們寫好的測試命令 npm run test:rules
執行結果
在action中我們可以看到我們寫的腳本被執行了, 如果執行沒有報錯那么就會提示我們"成功", 用"綠色"表示.
總結
好了就寫這么多吧, 也是初用, 寫的時候也是戰戰兢兢, 怕發布的時候被大牛噴, 不過真的很喜歡action, 還是想寫個文章推廣下, 拋磚引玉. 謝謝大家的閱讀.