Github Actions:再次改变软件开发
本文轉(zhuǎn)自 FEPulse 公眾號(hào)(微信搜索 FEPulse,精選國內(nèi)外最新前端資訊,為你把握前端脈搏)。
Github Actions 是 GitHub Universe 大會(huì)上發(fā)布的,被 Github 主管 Sam Lambert 稱為“再次改變軟件開發(fā)”的一款重磅功能(“we believe we will once again revolutionize software development.”)。本文目的是向大家介紹這一 Github 全新的功能,更多內(nèi)容可以查看文末的拓展閱讀。
什么是 Github Actions,官網(wǎng)的介紹是:
With GitHub Actions you can automate your workflow from idea to production.
還是很迷糊。不急,我們先看現(xiàn)在的 Github 是什么?代碼倉庫,一個(gè)提供了分布式版本控制和源代碼管理的代碼倉庫。想象一下這樣一種場(chǎng)景,你寫好了一個(gè)網(wǎng)站的代碼,并且存儲(chǔ)到了 Github 上,但完事了嗎?沒有,你還需要部署代碼才能讓別人訪問你的網(wǎng)站。另外,如果你修改了代碼,還需要單獨(dú)測(cè)試。理想的情況應(yīng)該是:當(dāng)你將代碼提交到 master 時(shí),測(cè)試、部署等等所有工作自動(dòng)執(zhí)行。之前,Travis、Pre-commit Hooks 可以幫助我們實(shí)現(xiàn)部分自動(dòng)化,而現(xiàn)在有了 Github Actions,通通皆可拋。
Github Actions 可以自動(dòng)化和定制化項(xiàng)目的 Workflow,像官網(wǎng)顯示的那樣。
Workflow 比較好理解,將對(duì)項(xiàng)目的操作概括和按順序整理,在遇到觸發(fā)條件時(shí) Workflow 就會(huì)按照開發(fā)者事先的設(shè)置串行或并行地運(yùn)行一系列 Action,這就是 Github Actions 名稱的由來。上面那張圖中,Action 即一個(gè)個(gè)方框,Workflow 即將 Action 連接起來的圖表。觸發(fā)條件有很多種,比如 push 代碼到 Github,比如 assign 了一個(gè) issue,比如創(chuàng)建了一個(gè) milestone 等等,這些都是 Github 提供的事件,工作流只要監(jiān)聽關(guān)心的事件即可。(目前 Github 一共提供了 26 種事件,想看所有事件可以查看:https://developer.github.com/actions/creating-workflows/workflow-configuration-options/#events-supported-in-workflow-files)
直觀地理解了 Workflow 和 Action,下面再對(duì) Github Actions 的核心 Action 作更深入地理解。Action 是一小段可以運(yùn)行的代碼,可以用來做很多事情。比如你可以設(shè)置一個(gè)自動(dòng)測(cè)試的 Action,當(dāng)提交代碼到 Github 后,Action 便會(huì)觸發(fā)自動(dòng)測(cè)試;再比如你可以設(shè)置一個(gè)自動(dòng)部署的 Action,當(dāng)代碼通過測(cè)試后直接部署到騰訊云、阿里云、Azure 上。除此以外,你還可以拿 Action 做很多事。比如當(dāng)前項(xiàng)目是一個(gè) NPM Package,你可以設(shè)置一個(gè) Action 用來自動(dòng) Publish;比如你需要監(jiān)聽項(xiàng)目的 issue,所以你可以設(shè)置一個(gè) Action,當(dāng)項(xiàng)目中有 issue 創(chuàng)建,給你的微信發(fā)一條提醒;比如 minify 或 uglify 你的 JS 代碼……Action 的想象空間很大,全看你的需求。目前 Github 一共發(fā)布了 450 個(gè)示例 Action,你也可以創(chuàng)建、分享你的 Action,別人也能搜到你的 Action。
講道理,講完基本概念下面就要開始實(shí)操了,但 Github Acions 還處于 Beta 階段,并沒有對(duì)所有人開放,想要提前使用的可以在官網(wǎng)嘗試申請(qǐng)。因?yàn)槲疫€沒拿到測(cè)試資格,所以后面有機(jī)會(huì)的話再說吧。不過已經(jīng)有 Github Actions 的第一批實(shí)踐者寫了一篇文章關(guān)于如何設(shè)置以及如何創(chuàng)建一個(gè) Action。
拓展閱讀:
總結(jié)
以上是生活随笔為你收集整理的Github Actions:再次改变软件开发的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你真的懂js获取可视区宽高吗
- 下一篇: snippet,让你编码效率翻倍