天天看點

【52ABP實戰教程】0.1-- Devops如何用VSTS持續內建到Github倉庫!什麼是VSTS?關于Github為什麼會有這個需求。正文使用VSTS給github的README 檔案建立建構狀态實際開發呢?

工欲善其事,必先利其器。在開始正式的教程之前我們先來聊聊準備工作。
  • 管理工具會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 編寫而成。
【52ABP實戰教程】0.1-- Devops如何用VSTS持續內建到Github倉庫!什麼是VSTS?關于Github為什麼會有這個需求。正文使用VSTS給github的README 檔案建立建構狀态實際開發呢?

先上一張圖

圖檔來自知乎。

為什麼會有這個需求。

目前Github作為一個全球最大的碼(tong)農(xing)交友社群。也是最大的開源社群,但是它沒有自動部署,在導航篇的時候我們說了。我們是一個,通過開源實際項目的方式給大家一個良好的體驗。

涉及到的技術也會用微軟全家桶的方式來進行開發的。

恭喜VSTS開通香港節點

沒有香港節點也就是東亞區域之前呢,大家隻能從 美國中部、加拿大中部、西歐、印度南部、澳洲東部、巴西南部這幾個節點選擇賬戶所在區域。

這些節點都有一個特點,對我們國家不怎麼友好。按照 Julia 的說法,我們國家強大的防火牆。恩恩。

在11月2日的微軟科技大會上,微軟研發部門的全球副總裁潘正磊女士宣布了微軟研發雲VSTS将于2017年底前落地中國香港。然後在10号的時候VSTS的老大布雷恩就宣布開通了VSTS在香港的節點。

這意味在大陸使用微軟全家桶的速度, 蹭蹭噌的加速了。

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

注冊VSTS

首先你要有一個微軟郵箱,沒有自己去注冊。

然後打開

https://app.vsaex.visualstudio.com/me?mkt=zh-CN

建立賬戶。

【52ABP實戰教程】0.1-- Devops如何用VSTS持續內建到Github倉庫!什麼是VSTS?關于Github為什麼會有這個需求。正文使用VSTS給github的README 檔案建立建構狀态實際開發呢?

image.png

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

正文

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

  • 首先建立一個新項目
    【52ABP實戰教程】0.1-- Devops如何用VSTS持續內建到Github倉庫!什麼是VSTS?關于Github為什麼會有這個需求。正文使用VSTS給github的README 檔案建立建構狀态實際開發呢?
  • 建立完畢後,進入項目。
    【52ABP實戰教程】0.1-- Devops如何用VSTS持續內建到Github倉庫!什麼是VSTS?關于Github為什麼會有這個需求。正文使用VSTS給github的README 檔案建立建構狀态實際開發呢?
  • 在Build And Release 菜單欄下的Builds中,選擇建立一個“Empty process” 。

    你可以給這個任務建立一個名字,然後這裡有幾個隊列,我們選擇"Hoste vs2017"的隊列

    【52ABP實戰教程】0.1-- Devops如何用VSTS持續內建到Github倉庫!什麼是VSTS?關于Github為什麼會有這個需求。正文使用VSTS給github的README 檔案建立建構狀态實際開發呢?
  • 然後選擇“Get Sources” ,選擇github。
    【52ABP實戰教程】0.1-- Devops如何用VSTS持續內建到Github倉庫!什麼是VSTS?關于Github為什麼會有這個需求。正文使用VSTS給github的README 檔案建立建構狀态實際開發呢?

    這裡需要你的github賬戶授權,這裡你可以選擇用網頁授權還是用個人密鑰授權。

    我們采用Authorize using OAuth,然後這裡請注意,彈窗很容易被攔截。

    這裡你要允許彈出。

    【52ABP實戰教程】0.1-- Devops如何用VSTS持續內建到Github倉庫!什麼是VSTS?關于Github為什麼會有這個需求。正文使用VSTS給github的README 檔案建立建構狀态實際開發呢?
    授權成功後,可以看到你github中倉庫的資訊。
    【52ABP實戰教程】0.1-- Devops如何用VSTS持續內建到Github倉庫!什麼是VSTS?關于Github為什麼會有這個需求。正文使用VSTS給github的README 檔案建立建構狀态實際開發呢?
  • 然後選擇菜單欄上的“Triggers”觸發器按鈕。打開觸發器,
    【52ABP實戰教程】0.1-- Devops如何用VSTS持續內建到Github倉庫!什麼是VSTS?關于Github為什麼會有這個需求。正文使用VSTS給github的README 檔案建立建構狀态實際開發呢?
  • 選擇Options配置下資訊。

    Build number format 是指建立生成的生成碼。你可以試試。

    【52ABP實戰教程】0.1-- Devops如何用VSTS持續內建到Github倉庫!什麼是VSTS?關于Github為什麼會有這個需求。正文使用VSTS給github的README 檔案建立建構狀态實際開發呢?
    最後,右上角“Save& queue”儲存。
    【52ABP實戰教程】0.1-- Devops如何用VSTS持續內建到Github倉庫!什麼是VSTS?關于Github為什麼會有這個需求。正文使用VSTS給github的README 檔案建立建構狀态實際開發呢?
    儲存資訊

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

使用VSTS給github的README 檔案建立建構狀态

建構完畢了,我們來看看怎麼讓逼格顯得稍微高大上點。打開我們的github項目。

【52ABP實戰教程】0.1-- Devops如何用VSTS持續內建到Github倉庫!什麼是VSTS?關于Github為什麼會有這個需求。正文使用VSTS給github的README 檔案建立建構狀态實際開發呢?

以上是效果圖!!!

連結位址:

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:

【52ABP實戰教程】0.1-- Devops如何用VSTS持續內建到Github倉庫!什麼是VSTS?關于Github為什麼會有這個需求。正文使用VSTS給github的README 檔案建立建構狀态實際開發呢?

徽章URL.png

  • 在github項目中的"Setting"中,打開webhooks,可以看到你綁定的webhook。每次對GitHub倉庫的送出都會觸發VSTS中的建構。
  • 我們傳回到vsts中,打開build。可以看到我們建立的隊列。
    【52ABP實戰教程】0.1-- Devops如何用VSTS持續內建到Github倉庫!什麼是VSTS?關于Github為什麼會有這個需求。正文使用VSTS給github的README 檔案建立建構狀态實際開發呢?
    這裡可以看到更加詳細的統計資訊,你編譯的次數,狀态,每次送出的資訊等等。

實際開發呢?

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

  • 打開VSTS,點選“Build & Release”,再點選“Builds”,找到任務名稱“這裡你可以随意取一個名字”,然後點選“Edit”按鈕。
  • 點選‘Trigger’.修改起來也很簡單。。
    【52ABP實戰教程】0.1-- Devops如何用VSTS持續內建到Github倉庫!什麼是VSTS?關于Github為什麼會有這個需求。正文使用VSTS給github的README 檔案建立建構狀态實際開發呢?

    看這裡.png

    修改為如圖所示即可。

  • 然後點選Save & queue,再點選Save。

總結

以上就是利用Vsts自動編譯建構項目的完成,然後在github項目中看到項目的建構狀态!

核心是為了解決幫助大家在開發過程進行的日常編譯問題。自動化建構。

VSTS的整體功能肯定不止這麼一點,在後面的日子内,我會帶着大家慢慢玩!

請掃描此二維碼關注公衆帳号,你将會得到及時的文章推送資訊。

【52ABP實戰教程】0.1-- Devops如何用VSTS持續內建到Github倉庫!什麼是VSTS?關于Github為什麼會有這個需求。正文使用VSTS給github的README 檔案建立建構狀态實際開發呢?

繼續閱讀