2017年12月13日 星期三

[從.Net工程師的角度來看DevOps 24]免費build私人Repo的CI Service - Visual Studio Team Service介紹

image
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 和 https://blog.xebialabs.com/2016/03/21/essential-devops-terms/

在上一篇([從.Net工程師的角度來看DevOps 23]在AppVeyor執行Build Script - 整合build資訊到github)介紹完了如何用AppVeyor執行我們定義的build script,不過有時候我們有私人的repo也希望做CI,這個時候免費版本的AppVeyor就不夠了。

這邊將會介紹另外一個能夠build私人repo,由Microsoft提供的免費CI服務,Visual Studio Team Service(VSTS)。

這篇先看內建VSTS所提供的方式來建制範例專案,在下篇在改成執行我們的build script。

題外話,假設之前已經有VSTS帳號,想要移動Region到East Asia,可以參考這篇:[VSTS]如何調整Visual Studio Team Service的區域(Region)

VSTS小檔案

VSTS是微軟提供的一個免費的Team Foundation Server(TFS)的雲端版本,build只是他其中一部分的功能(也是這個系列唯一會用到的部分)。

用VSTS內建的build task來做CI

和AppVeyor一樣,先了解如果沒有build script的情況下,VSTS如何設定build步奏。

在開始之前,先需要在VSTS的帳號建立一個專案:

image
建立專案

因為只使用到build,可以捲動到下面,直接選Setup Build

image
建立一個build definition

這個會把我們帶到Build的頁簽,選擇New Definition

image
建立build definition

可以選擇一個微軟定義好用來建立.Net Desktop的template:

image
選擇template

再來要設定source的位置:

  1. 選擇左邊的Get Source
  2. 選擇Github
  3. 做驗證 - 可以用OAuth或者github的personal token
  4. 選擇要build的repo
image
設定source

選擇右上角的Save & Queue然後設定這個build definition的名稱之後儲存:

image
儲存並且執行build
如果依照上面的步奏直接建立build definition其實會build不起來,需要調整設定檔案裡面的sln檔案位置的設定(要給完整檔案路徑)。這也告訴我們如果沒有自己的build script, 從一個build server到另外一個其實會有些工,更別說無法local執行和CI Server一樣的動作。

檢查執行結果

過了一些時間之後,可以看到build成功: 和AppVeyor比較起來,可以看到VSTS在呈現的畫面比較漂亮一些,左邊是那些定義過的steps執行結果,右邊則是一個簡單的summary。因為內建step有執行test(不過是MSTest),所以有看到test結果(但是只有一筆)。

image
build成功

結語

這篇介紹了VSTS的build服務,並且用內建的Template來建立出build definition的檔案。

透過這篇的操作,也會發現設定build definition和AppVeyor非常不一樣,因此在沒有build script的情況下,要從AppVeyor移動到VSTS有一些工要做(以我們這個範例來說,其實內建的template不做任何事情是沒有辦法build起來), 因此build script非常重要。

下篇將會調整VSTS使用我們的build script做build。


沒有留言 :

張貼留言