1. 程式人生 > >Visual Studio Team Services持續集成到Github倉庫

Visual Studio Team Services持續集成到Github倉庫

block orm 開始 logical 版本 core 軟件 lin 代碼段

工欲善其事,必先利其器。在開始正式的教程之前我們先來聊聊準備工作。
  • 管理工具會VSTS。
  • 代碼管理會用GITHUB。
  • 服務器會用Azure。
    所有的東西都是利用現有服務。不會說自己從虛擬機開始玩。我們就專註於寫代碼。

什麽是VSTS?

VSTS的全稱是Visual Studio Team Services。
介紹VSTS之前先說下TFS(Team Foundation Server)。TFS是微軟推出的一款ALM(Application Lifecycle Management)軟件生命周期管理工具。通過它你可以從代碼管理->代碼版本管理->項目管理->持續集成->自動發布->自動測試等一系列軟件生命周期在內的全家桶功能。
而VSTS(Visual Studio Team System)是基於SaaS(多租戶)化TFS的雲產品。
聽了之後是不是感覺很強大。

關於Github

Git 是由 Linux 之父 Linus Tovalds 為了更好地管理linux內核開發而創立的分布式版本控制/軟件配置管理軟件。
GitHub是一個通過Git進行版本控制的軟件源代碼托管服務,由GitHub公司(曾稱Logical Awesome)的開發者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails編寫而成。

技術分享圖片
圖片來自知乎。

為什麽會有這個需求。

目前Github作為一個全球最大的碼(tong)農(xing)交友社區。也是最大的開源社區,但是它沒有自動部署,在導航篇的時候我們說了。我們是一個,通過開源實際項目的方式給大家一個良好的體驗。
涉及到的技術也會用微軟全家桶的方式來進行開發的。

恭喜VSTS開通香港節點

沒有香港節點也就是東亞區域之前呢,大家只能從 美國中部加拿大中部西歐印度南部澳大利亞東部巴西南部這幾個節點選擇賬戶所在區域。
這些節點都有一個特點,對我們國家不怎麽友好。按照 Julia 的說法,我們國家強大的防火墻。恩恩。
在11月2日的微軟科技大會上,微軟研發部門的全球副總裁潘正磊女士宣布了微軟研發雲VSTS將於2017年底前落地中國香港。然後在10號的時候VSTS的老大布雷恩就宣布開通了VSTS在香港的節點。
這意味在大陸使用微軟全家桶的速度, 蹭蹭噌的加速了。

好了,閑話少敘。開始幹吧!

註冊VSTS

首先你要有一個微軟郵箱,沒有自己去註冊。
然後打開https://app.vsaex.visualstudio.com/me?mkt=zh-CN 新建賬戶。
技術分享圖片

這裏的所在地一定要選擇東亞,因為其他地區的速度慢。

正文

我們現在開始做一些正經事。

  • 首先創建一個新項目
    技術分享圖片
  • 創建完畢後,進入項目。
    技術分享圖片
  • 在Build And Release 菜單欄下的Builds中,選擇新建一個“Empty process” 。
    你可以給這個任務創建一個名字,然後這裏有幾個隊列,我們選擇"Hoste vs2017"的隊列
    技術分享圖片
  • 然後選擇“Get Sources” ,選擇github。
    技術分享圖片
    這裏需要你的github賬戶授權,這裏你可以選擇用網頁授權還是用個人密鑰授權。
    我們采用Authorize using OAuth,然後這裏請註意,彈窗很容易被攔截。
    這裏你要允許彈出。
    技術分享圖片
    授權成功後,可以看到你github中倉庫的信息。
    技術分享圖片
  • 然後選擇菜單欄上的“Triggers”觸發器按鈕。打開觸發器,
    技術分享圖片
  • 選擇Options配置下信息。
    Build number format 是指創建生成的生成碼。你可以試試。
    技術分享圖片
    最後,右上角“Save& queue”保存。
    技術分享圖片

至此整個功能配置已經完畢了。

使用VSTS給github的README 文件創建構建狀態

構建完畢了,我們來看看怎麽讓逼格顯得稍微高大上點。打開我們的github項目。
技術分享圖片
以上是效果圖!!!
鏈接地址:https://github.com/ltm0203/aspnetcore

我們在VSTS中為項目創建一個自定義的通知消息,方法是利用VSTS的構建生成的URL,利用markdown的語法來完成。

  • 首先在打開你的github,導航到你所在的倉庫,這裏我們使用的是aspnetcore項目中。
  • 創建一個README.md的文件。
    然後將vsts中生成的徽章標記鏈接,粘貼到README.md文件中即可。
    代碼段:

    [<img src="https://ltm0203.visualstudio.com/_apis/public/build/definitions/06667c49-f49d-4e3b-8eda-1ee96b1914c7/1/badge">](https://51abp.visualstudio.com/_apis/public/build/definitions/d985e2b0-acd1-4556-bcb9-148d80437520/1/badge)
    vsts中生成的徽章URL:
    技術分享圖片
  • 在github項目中的"Setting"中,打開webhooks,可以看到你綁定的webhook。每次對GitHub倉庫的提交都會觸發VSTS中的構建。
  • 我們返回到vsts中,打開build。可以看到我們創建的隊列。
    技術分享圖片
    這裏可以看到更加詳細的統計信息,你編譯的次數,狀態,每次提交的信息等等。

實際開發呢?

在實際開發的項目中,我們更多的時候,是一個幾個功能寫好了才提交一次,而當前的情況每個文件發生變化就編譯一次,這稍微有點不合理。我們通過對隊列任務這裏你可以隨意取一個名字的進行修改,讓項目編譯更加的合理。修改為每提交一次才編譯。

  • 打開VSTS,點擊“Build & Release”,再點擊“Builds”,找到任務名稱“這裏你可以隨意取一個名字”,然後點擊“Edit”按鈕。
  • 點擊‘Trigger’.修改起來也很簡單。。
    技術分享圖片
    修改為如圖所示即可。
  • 然後點擊Save & queue,再點擊Save。

## 總結
以上就是利用Vsts自動編譯構建項目的完成,然後在github項目中看到項目的構建狀態!
核心是為了解決幫助大家在開發過程進行的日常編譯問題。自動化構建。
VSTS的整體功能肯定不止這麽一點,在後面的日子內,我會帶著大家慢慢玩!

Visual Studio Team Services持續集成到Github倉庫