從2017年GitHub官方的blog 還在推薦使用外部的CI/CD 工具到2019.8-8 GitHub 官方宣布GitHub actions 支持CI/ CD.而其對(duì)所有開(kāi)源項(xiàng)目免費(fèi)野哭。 Github DevOps 真的實(shí)現(xiàn)了彤钟。
此文主要參考和翻譯Github 官方blog?
https://github.blog/2019-08-08-github-actions-now-supports-ci-cd/
那么什么是GitHub Actions 呢斑胜?它是GitHub上的應(yīng)用程序編程接口(API)鞠抑。它使您能夠根據(jù)任何event 事件來(lái)協(xié)調(diào)任何工作流程饭聚,而GitHub可以管理執(zhí)行,為您提供豐富的反饋并保證您流程的每一步的安全性搁拙。
使用GitHub Actions秒梳,工作流和步驟都可以在一個(gè)代碼倉(cāng)庫(kù)中寫(xiě)好,因此您可以創(chuàng)建箕速,共享酪碘,重用和fork您的軟件開(kāi)發(fā)實(shí)踐.
快速的CI/CD,支持任何平臺(tái),任何語(yǔ)言盐茎,任何云
GitHub Actions現(xiàn)在可以更輕松地支持在任何平臺(tái)(包括Linux兴垦,macOS和Windows)上構(gòu)建,測(cè)試和部署項(xiàng)目的自動(dòng)化方式以及在容器或虛擬機(jī)中運(yùn)行工作流。 Actions還支持比以往更多的語(yǔ)言和框架探越,包括Node.js狡赐,Python,Java扶关,PHP阴汇,Ruby,C / C ++节槐,.NET搀庶,Android和iOS. 想要測(cè)試多容器應(yīng)用程序?現(xiàn)在铜异,您只需在工作流文件中添加一些docker-compose哥倔,即可測(cè)試您的Web服務(wù)及其數(shù)據(jù)庫(kù)。
Matrix builds
通過(guò)Matrix構(gòu)建揍庄,您可以輕松地并行測(cè)試項(xiàng)目的多個(gè)版本咆蒿。在Actions YAML文件中添加幾行,讓GitHub處理剩下的事情蚂子。
實(shí)時(shí)的日志信息
實(shí)時(shí)日志可在運(yùn)行時(shí)為構(gòu)建過(guò)程提供豐富的反饋沃测。 GitHub將您的日志流式傳輸?shù)紸ctions控制臺(tái),以實(shí)時(shí)顯示您的狀態(tài)食茎。日志格式化以便于閱讀蒂破,包括表情符號(hào)。 ??
并且您可以使用干凈簡(jiǎn)單的永久鏈接深入鏈接到任何日志文件中的任何行别渔,這樣您就可以輕松地與朋友討論構(gòu)建失敗或測(cè)試結(jié)果附迷。
編寫(xiě)和重用代碼等操作和工作流程
GitHub操作是代碼 - 因此您可以像代碼一樣編輯,重用哎媚,共享和fork它們喇伯。當(dāng)您fork代碼倉(cāng)庫(kù)時(shí),您將操作與源代碼一起fork拨与,為您提供使用與原始項(xiàng)目相同的操作來(lái)測(cè)試和構(gòu)建項(xiàng)目的無(wú)縫切換稻据。我們認(rèn)為這是向社區(qū)學(xué)習(xí)的好方法,通過(guò)復(fù)制您喜歡的項(xiàng)目的每一步买喧,然后fork攀甚,以滿足您自己的要求。
Actions使用干凈的新語(yǔ)法來(lái)表達(dá)基于YAML的工作流岗喉。您可以通過(guò)將操作和工作流引用為簡(jiǎn)單的代碼倉(cāng)庫(kù)引用來(lái)重用它們秋度,從而可以輕松地將它們拼接到強(qiáng)大的工作流中。用JavaScript編寫(xiě)或創(chuàng)建容器Action-都可以與完整的GitHub API和任何其他公共API進(jìn)行交互钱床。
您還可以重用Github合作伙伴的豐富行動(dòng)生態(tài)系統(tǒng)荚斯,例如LaunchDarkly,mabl,Code Climate事期,GitKraken滥壕,甚至可以觸發(fā)其他CI提供商(如CircleCI)的構(gòu)建
自動(dòng)化任何事件的工作流程 - 甚至是您自己的
GitHub Actions可幫助您構(gòu)建,測(cè)試和部署應(yīng)用程序兽泣,但您也可以使用它來(lái)自動(dòng)執(zhí)行開(kāi)發(fā)人員工作流程中常見(jiàn)的其他任務(wù):分類(lèi)和管理問(wèn)題绎橘,自動(dòng)發(fā)布版本,與用戶(hù)群協(xié)作等等唠倦〕屏郏可以在GitHub上的開(kāi)發(fā)人員生命周期中的 event事件上觸發(fā)操作工作流。任何GitHub應(yīng)用程序現(xiàn)在都可以添加自己的自定義事件稠鼻,因此開(kāi)發(fā)人員和合作伙伴可以自定義GitHub以滿足任何項(xiàng)目的需求冈止。
集成的包和容器上的構(gòu)建
發(fā)布包和容器是任何CI / CD工作流的關(guān)鍵部分,例如開(kāi)源庫(kù)或部署大型Web服務(wù)候齿。 GitHub Actions使得從GitHub Package Registry或任何其他registry發(fā)布和使用包變得容易熙暴。隨著開(kāi)發(fā)人員獲得對(duì)Actions的訪問(wèn)權(quán)限,他們還可以在普遍可用之前訪問(wèn)GitHub Package Registry慌盯,以便跨越問(wèn)題和代碼(從構(gòu)建到部署)自動(dòng)化整個(gè)工作流
推薦工作流程使其易于上手
Github Actions希望讓您盡可能輕松地開(kāi)始使用CI / CD≈苊梗現(xiàn)在,當(dāng)您為存儲(chǔ)庫(kù)啟用Actions時(shí)亚皂,GitHub將建議適合您項(xiàng)目的Actions工作流俱箱。
簡(jiǎn)單,對(duì)開(kāi)源項(xiàng)目免費(fèi)孕讳,對(duì)于私有代碼庫(kù)按需付費(fèi)定價(jià)
我們希望每個(gè)開(kāi)源項(xiàng)目都富有成效并使用最佳實(shí)踐,因此GitHub上的4000萬(wàn)開(kāi)發(fā)人員可以免費(fèi)使用Actions來(lái)使用公共存儲(chǔ)庫(kù)巍膘。對(duì)于私有代碼庫(kù)厂财,Actions提供簡(jiǎn)單的按需付費(fèi)定價(jià)。如果您想在自己的硬件或其他云上運(yùn)行峡懈,我們的自托管運(yùn)行者可以免費(fèi)使用璃饱。在測(cè)試期間,每個(gè)人都可以免費(fèi)使用Actions肪康。有關(guān)完整詳細(xì)信息荚恶,請(qǐng)參閱注冊(cè)頁(yè)面上的定價(jià)部分。
下一步計(jì)劃是什么磷支?
在對(duì)Actions的更新中有很多令人興奮的事情谒撼,還有很多東西要來(lái)。這兒是一些精彩片段:
self-hosted 運(yùn)行者雾狈。如果您已在數(shù)據(jù)中心內(nèi)擁有自己的虛擬機(jī)或在云中管理的實(shí)例廓潜,則可以使用操作以相同的簡(jiǎn)單性和速度自動(dòng)化工作流。在VM上安裝Actions運(yùn)行器并使用Actions注冊(cè)它們。在自托管運(yùn)行程序上執(zhí)行的工作負(fù)載是免費(fèi)的辩蛋。
GitHub Enterprise Server的操作呻畸。明年,Github actions 將向GitHub Enterprise Server客戶(hù)提供操作悼院,包括用于內(nèi)部部署的混合選項(xiàng)伤为,可將您的代碼和軟件包保存在數(shù)據(jù)中心,同時(shí)GitHub可以協(xié)調(diào)您的工作流程据途。
在正式版本開(kāi)始之前還在等什么呢绞愚?趕快開(kāi)始注冊(cè)測(cè)試版本吧