Github Actions:再次改變軟體開發

CompileYouth發表於2018-10-22

本文轉自 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,像官網顯示的那樣。

Github Actions:再次改變軟體開發

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 Actions:再次改變軟體開發

Github Actions:再次改變軟體開發

Github Actions:再次改變軟體開發

擴充閱讀:

  1. github.com/features/ac… :官網;
  2. developer.github.com/actions/ :文件;
  3. Introducing GitHub Actions:詳細介紹瞭如何設定 Action 和建立新的 Action;
  4. GitHub Actions: built by you, run by us:一些 Action Demo;
  5. GitHub Actions Creates a Buzz for Automated Dev Workflows:新聞報導;
  6. GitHub grabs a piece of the Actions: 'A project that will do for software development what we did for the pull request':新聞報導。

相關文章