1. 程式人生 > >開源項目福利-github開源項目免費使用Azure PipeLine

開源項目福利-github開源項目免費使用Azure PipeLine

升級 所有 自己 pip 設計 完成後 org 等待時間 如何

微軟收購Github後,很多人猜想微軟可能會砍掉VSTS,然而事實VSTS並沒有砍掉,關於Azure Devops的詳細信息可以查看 這篇博客,如果想查看原文也可以從鏈接裏提供的原始地址裏查看.

今天要介紹的是做Azure devops的ci部分:Azure Pipeline. VSTS升級到Azure Devops之後對開源開發者帶來的重大利好消息就是Github開源項目可以免費,無限時和並行運行10個CI/CD作業.

下面將簡要介紹Azure PipeLine以及如何把Azure PipeLine以Github結合,實現自動化構建.

Azure PipeLine簡介

PipeLine字面含義是管道,流水線,正如其字面含義.Azure PipeLine可以把一個構建任務拆分成若幹部分,然後串聯起來構成一個流水線作業.根據具體構建業務不同,一個PipeLine可能只包含一兩個步驟,也有可能十幾個甚至幾十個步驟.Azure PipeLine類似於Jenkins PipeLine,與傳統自動構建相比優點在於結構非常清析,構建流水線中的某個環節出現問題很容易定位到(使用過傳統Jenkins自由式任務的同學可能會體會到,對於一些復雜的構建任務一旦出現問題,排查起來非常頭疼,面對著復雜的控制臺輸出讓人痛不欲生).當然本節並不會介紹非常復雜的構建知識,而是一個入門教程,以供廣大開源作者和愛好者快速搭建一個流水線構建.

Azure Pipeline 目前支持Node.js, Python, Java, PHP, Ruby, C/C++, .NET, Android, and iOS,非常令人欣喜的是Azure PipeLine並不需要你具有專業的Devops知識甚至即便你完全不了解Devops也能很方便,快速的搭建一個PipeLine作業.因此,不要猶豫,也不要擔心,果斷嘗試一下.

Azure PipeLine與Github集成,快速搭建一個PipeLine作業.

讀者閱讀本文可以沒有任何自動構建或者Devops開發經驗,但是前提必須要有一個Github賬戶和一個Microsoft賬戶,這兩種賬戶都可以免費註冊,並且也不是很復雜.由於本要已經有賬戶了,因此後面的教程中都假定是已經登陸了github賬戶和Microsoft賬戶.

創建一個Github項目

對於如何在github創建一個項目,這裏不再贅述,讀者可以查看相關文章或者Github幫助來獲得相關方面知識.我這裏使用我的github倉庫裏一個名為 gitShow的.net項目(讀者可以上傳一個.net項目也可以是支持的其它項目(java,python,nodejs等)到github倉庫,不用擔心項目類型不一樣,我們不需要動手寫一行代碼便可以利用Azure PipeLine強大的功能創建一個簡單的自動構建流水線作業.我的項目結構如下:

技術分享圖片

在Azure Devops裏創建一個Azure PipeLine項目

我們在瀏覽器輸入dev.azure.com就會進入azure devops界面

技術分享圖片

如果你沒有登陸,看到的界面可能和上面不一樣,登陸以後,如果你沒有創建任何組織,左邊不會有任何組織列表信息,這時候界面會提示你創建一個組織,你也可以點擊add organization來創建一個組織,組織相當於一個團隊,一個組織裏面可以包含若幹個項目.

點擊左側的任意一個組織進入組織,我進入的是截圖裏面的最後一個,當然這無所謂,你可以進入任意一個組織.

這是一個空的組織,頁面會提示我們創建一個項目

技術分享圖片

我們輸入項目名稱,這時候創建項目按鈕激活,我們點擊它便可以創建一個項目.

過一會一個空的項目就生成了,這時候頁面又會提示你創建一個流水線作業

技術分享圖片

點擊‘New PipeLine‘按鈕就會進入流水線作業創建頁面

此時頁面會提示你選擇倉庫來源,我們選擇Github
技術分享圖片

第一個與Github連接會出現授權選擇,這裏不要點擊Authorize,而是點擊下面的Install our app from the GitHub Marketplace鏈接,進入到插件安裝頁面,這時候會讓你選擇一個組織,根據你的組織不同,這裏出現的內容也不相同,選擇一個自己有權限的組織即可

技術分享圖片

點擊組織名,進入到倉庫選擇頁面

技術分享圖片

可以選擇所有倉庫或者是指定倉庫,我這裏選擇的是所有倉庫,然後點擊‘Install‘按鈕,過數秒後,會進入一個頁面讓你選擇Microsoft賬戶

技術分享圖片

點擊賬戶名即可

這時候,如果你選擇的是所有,則會把所有的github倉庫都羅列出來

技術分享圖片

我這裏選擇GitShow項目,此時Azure Devops平臺就會對項目進行智能分析,然後讓你選擇項目類型(也可能沒有這一步,直接進入PipeLine代碼界面),這裏Azure Devops自動為我們生成了PipeLine 腳本

技術分享圖片

然後我們點擊左上角Run按鈕運行PipeLine腳本,這一步是等待時間最長的

技術分享圖片

從上圖中我們可以看到PipeLine的執行狀態,有對勾標識的為已成功執行的步驟,帶有三角標識的為當前正在執行的步驟,帶有鐘表標識的為待執行的步驟.等待所有的步驟標識都變成了對勾,整個PipeLine就執行完成了

如果項目最終構建成功,則會出現一個大的綠色對勾標識整個項目構建成功

技術分享圖片

我們點擊其中某個步驟,就可以看到當前步驟構建的詳細cli輸出信息,類似於Jenkins cli輸出

技術分享圖片

在github項目頁面顯示Azure PipeLine構建狀態徽標

如果項目每次構建我們都跳到Azure devops界面去查看,顯然太麻煩了,很多時候我們可能只關心構建狀態,只要構建成功我們便不再看詳細信息,如果失敗了再進入構建頁面查看構建詳細信息.實際上很多開源項目都會有一個構建狀態徽標顯示在項目頁面裏,便於直接查看項目的構建狀態.下面我們就介紹如何自己的github項目添加一個Azure PipeLine構建狀態徽標

技術分享圖片

如上圖,我們點擊左側導航欄裏的PipeLines按鈕,然後點擊Builds按鈕,出現如下界面

技術分享圖片

我們點擊...符號,在彈出的下拉列表裏選擇Status Badge,出現如下界面

技術分享圖片

最面下是markdown樣例鏈接,我們復制它.然後我們再轉到github,打開自己的項目頁,然後點擊README.md文件進行編輯(如果讀者的項目裏沒有此文件可以添加一個,註意名稱必須是README.md,添加非常簡單,如果沒有github會提示你添加一個,按照提示添加即可),我們把復制的內容添加到README.md

技術分享圖片

然後點擊保存,返回到項目首頁,就可以看到剛添加的構建狀態徽標啦

技術分享圖片

以上狀態是實時更新的,我們修改一下源代碼,故意制造些錯誤,待Azure PipeLine構建完成後,顯示在Github頁面的狀態就會更新啦

技術分享圖片

這極大地提升了開源項目的協作效率,如果有用戶提交進來代碼,代碼審閱者可以先看一下構建狀態是成功還是失敗,如果失敗了可以直接讓代碼提交者先把項目構建成功,然後再提交,減少不必要的重復的手動構建工作.

以上顯示狀態徽標只是個簡單的示例,讀者還可以參考其它開源項目的布局,把自己的布局設計的更大方美觀

技術分享圖片

由於Azure PipeLine剛剛推出,這裏僅僅是進行初步嘗試,實際工作中靠自動生成的腳本可能還是遠遠不夠的,需要我們根據自己的項目情況來定制流水線構建方案.但是做為一個開源項目自動構建方案已經夠用了.以後有時間會分享更多結合.net 平臺的Devops的知識.希望大家多交流,也希望專家大佬們批評指正,多提意見.

開源項目福利-github開源項目免費使用Azure PipeLine