本文轉自 FEPulse 公眾號(微信搜尋 FEPulse,精選國內外最新前端資訊,為你把握前端脈搏)。
Github Actions 是 GitHub Universe 大會上釋出的,被 Github 主管 Sam Lambert 稱為“再次改變軟體開發”的一款重磅功能(“we believe we will once again revolutionize software development.”)。本文目的是向大家介紹這一 Github 全新的功能,更多內容可以檢視文末的擴充閱讀。
什麼是 Github Actions,官網的介紹是:
With GitHub Actions you can automate your workflow from idea to production.
還是很迷糊。不急,我們先看現在的 Github 是什麼?程式碼倉庫,一個提供了分散式版本控制和原始碼管理的程式碼倉庫。想象一下這樣一種場景,你寫好了一個網站的程式碼,並且儲存到了 Github 上,但完事了嗎?沒有,你還需要部署程式碼才能讓別人訪問你的網站。另外,如果你修改了程式碼,還需要單獨測試。理想的情況應該是:當你將程式碼提交到 master 時,測試、部署等等所有工作自動執行。之前,Travis、Pre-commit Hooks 可以幫助我們實現部分自動化,而現在有了 Github Actions,通通皆可拋。
Github Actions 可以自動化和定製化專案的 Workflow,像官網顯示的那樣。
Workflow 比較好理解,將對專案的操作概括和按順序整理,在遇到觸發條件時 Workflow 就會按照開發者事先的設定序列或並行地執行一系列 Action,這就是 Github Actions 名稱的由來。上面那張圖中,Action 即一個個方框,Workflow 即將 Action 連線起來的圖表。觸發條件有很多種,比如 push 程式碼到 Github,比如 assign 了一個 issue,比如建立了一個 milestone 等等,這些都是 Github 提供的事件,工作流只要監聽關心的事件即可。(目前 Github 一共提供了 26 種事件,想看所有事件可以檢視:developer.github.com/actions/cre…
直觀地理解了 Workflow 和 Action,下面再對 Github Actions 的核心 Action 作更深入地理解。Action 是一小段可以執行的程式碼,可以用來做很多事情。比如你可以設定一個自動測試的 Action,當提交程式碼到 Github 後,Action 便會觸發自動測試;再比如你可以設定一個自動部署的 Action,當程式碼通過測試後直接部署到騰訊雲、阿里雲、Azure 上。除此以外,你還可以拿 Action 做很多事。比如當前專案是一個 NPM Package,你可以設定一個 Action 用來自動 Publish;比如你需要監聽專案的 issue,所以你可以設定一個 Action,當專案中有 issue 建立,給你的微信發一條提醒;比如 minify 或 uglify 你的 JS 程式碼……Action 的想象空間很大,全看你的需求。目前 Github 一共釋出了 450 個示例 Action,你也可以建立、分享你的 Action,別人也能搜到你的 Action。
講道理,講完基本概念下面就要開始實操了,但 Github Acions 還處於 Beta 階段,並沒有對所有人開放,想要提前使用的可以在官網嘗試申請。因為我還沒拿到測試資格,所以後面有機會的話再說吧。不過已經有 Github Actions 的第一批實踐者寫了一篇文章關於如何設定以及如何建立一個 Action。
擴充閱讀:
- github.com/features/ac… :官網;
- developer.github.com/actions/ :文件;
- Introducing GitHub Actions:詳細介紹瞭如何設定 Action 和建立新的 Action;
- GitHub Actions: built by you, run by us:一些 Action Demo;
- GitHub Actions Creates a Buzz for Automated Dev Workflows:新聞報導;
- GitHub grabs a piece of the Actions: 'A project that will do for software development what we did for the pull request':新聞報導。