體驗分享
本文一個嘗鮮的體驗分享, 并沒有太復雜的技巧, 做了一個最少代碼的例子展示, 讓每個人都可以把action用起來, 如果路過的大牛有高級技巧請留言分享, 我會補充. 下面正文開始.
是什么?
是一個免費的操作系統容器(Linux/Windows/macOS), 我們可以讓他預裝開發環境(node/php/python...). 注: 后面的文章假設我們選了一臺裝有nodejs的linux服務器.
有什么用?
我們可以上傳(git push)代碼, 然后在他的nodejs中執行, 如果我們寫的代碼中有測試腳本, 那么他執行完畢后會給我們一個圖標反饋到github的提交記錄, 如下圖:
怎么用?
進入action頁面
現在任何倉庫都多了一個action按鈕, 如圖:
選擇需要的環境
第一次進入會讓我們選擇開發環境, 這里我選擇了nodejs, 點擊對應的"Set up this workflow"按鈕, 如圖:
告訴action你要干什么
點擊后我們進入了編輯界面, 在這里我們要告訴"action"他要做什么, 如圖:
解釋下配置文件
name: Node CIon: [push]jobs:build:runs-on: ubuntu-lateststeps:- uses: actions/checkout@master- name: Use Node.js 10.xuses: actions/setup-node@v1- name: testrun: |npm inpm 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, 還是想寫個文章推廣下, 拋磚引玉. 謝謝大家的閱讀.