dotnet core 3.0 + Entity Framework Tip – 如何印出底層自動產生的SQL

在寫 dotnet core / .net MVC 的專案時,通常都會搭配 Entity Framework (簡稱EF)來存取資料庫,如 MS SQL、MySQL 等等。

以我們這次的案子來說,會了讓同仁能更了解 EF的底層機制,所以想說在 dotnet core 3.0 的程式裏,加上設定,方便觀察各個指令會對應到的SQL Script.

以 dotnet core 3.0來說,我們要做的設定動作有
一、產生對應 LoggerFactory (*比如說 : 是要寫到Console、或是 Event 、DB 等其它目的地)
二、在程式連結資料庫(DBContext)的時候,把上面產生的 Logger也一併綁定,方便系統輸出。

如果是用 dotnet Core 2.x的話,
DBContext 裏的設定如下


參考資料 : https://stackoverflow.com/questions/53690820/how-to-create-a-loggerfactory-with-a-consoleloggerprovider

Facebook Comments

dotnet core 3.0 DateTime in JSON

最近手邊有個小案子,需要從前端傳遞日期到後端 ~
如果是用預設的 .net core 功能來接受 json的日期資料的話 ,可能會遇到問題

比如說,後端收到的是 這種格式2012-04-23T18:25:43.511Z ~
而不是我們一般常使用的格式,如 2019-12-02 13:22:59
做了一下功能,看來是預設的套件沒有支援,所以如果真的傳這種資料的話 ~
C#這邊會需要做點加工 …

以下,是我們的解法 供大家參考 ~
一、安裝 NewtonsoftJson的套件
二、修改設定檔 Startup.cs 來

第一步,安裝 NuGet 的套件

第二步,修改 Startup.cs 以加入 NewtonsoftJson

voilà ~ 一切就ok囉 ~~~
後面我們再一一分享,這次小專案裏我們還遇到哪些小事件~ (*如 Entity Framework 產生 SQL 該如何取得/列印在 Console)

Facebook Comments

dotnet core 3 安裝過程 (Error 500.30 ANCM In-Process Start Failure)

最近因為專案需要,所以開始導入 dotnet core ,以目前的時間 2019-12-2,最新的版本為 .NET Core 3.0

官方連結 在這 https://dotnet.microsoft.com/download/dotnet-core/3.0
手邊的測試環境為 Win Server 2012 + IIS 8 (*上面已有裝 dotnet core v2.2)
不過在手邊使用的開發工具為 Visual Studio for Mac, v8.3.6 + .NET Core 3.0 ~

所以在將程式從本機發佈的資料夾放至主機時

會出現 HTTP Error 500.30 – ANCM In-Process Start Failure 的錯誤訊息

當然發生的原因可能有很多,不過思考一下 v2.2 如果主機上已經成功的運作 ~
其實應該很有可能是執行環境的問題 ~
後來到官網看了一下,很有可能是沒有裝最新的3.0 runtime ~

最後依官網的建議,裝上 Hosting Bundle (依它的指示 下一步下一步 安裝即可)

安裝完成後,再將 IIS 重啟後,即可正常執行 ~

.NET Core 版本清單的資訊,如下 ~ 各位如有需要可自行選擇。
https://dotnet.microsoft.com/download/dotnet-core

Facebook Comments

Java Path Setup / Java 路徑設定

For Mac OSX 10.5 or later

In Mac OSX 10.5 or later, Apple recommends to set the $JAVA_HOME variable to /usr/libexec/java_home,
just export $JAVA_HOME in file ~/. bash_profile or ~/.profile.

 

For Linux

For each user,  user can add the java path in  ~/. bash_profile or ~/.profile.
For all users,  system admin can add the java path in /etc/profile

To find java path location, try one of followings

  • update-java-alternatives -l
  • cd /
    find . -name ‘javac’                //might need root privilege
  • alternatives –display java
  • sudo update-alternatives –config java
  • Or take look at the following

     –  /usr/local/java/jdk[version]
    –  /usr/lib/jvm/java-1.11.0-openjdk-amd64
    –  /usr/lib/jvm/java-1.8.0-openjdk


    Once the JDK path is found,  we can add into ~/.bash_profile or  ~/.profile as following,

export JAVA_HOME=”path that you found”

export PATH=$JAVA_HOME/bin:$PATH

For Windows   (*Reference : mkyong blog

Find  System Properties (*My Computer > Right Click > Properties)

Add JAVA_HOME

 

ADD JAVA Bin PATH     //Window 7

 

ADD JAVA Bin PATH     //Window 10

 

Last Step,  Let’s run some test

 

以上為安裝JDK 軟體後 ,需做的基本路徑設定。
也希望對各位初學者或是想找路徑的朋友   有些幫助 ~

以上

時賦科技  FRank

Facebook Comments

[ C# Web Angular 6 ]使用 TeamCity 實現 Auto Deployment ~ 進階篇

最近因公司新專案要求,決定使用 Angular 6 ,經過一番努力終於成功把 Angular 6 成功的加入 C# 專案中,接著以為可以很順利的把 Angular 6 加入 Teamcity CI 中 ,卻意外的也花了不少時間,所以就把安裝設定的流程筆記下來,也供大家參考

Step 1. 

要使用Angular 2 以上,必須先在本機安裝 node js 以及 typescript ,相對的我們也需要在TeamCity的Server上安裝,以下提供載點

Step 2.

接著開始在 TeamCity 上設定 Auto Build ,這個部分原本打算用比較偷懶的方式,直接把Angular 6 的 node_modules 加入專案中並且 Push 到 Git Server上面,可是檔案真的太大了,過程中一直不太順利,所以後來還是決定在 TeamCity Build 之前 ,再去Install node_modules ,所以這一個部分我們需要再 TeamCity 的 Build Step 加上一段Command 的指令

螢幕快照 2018-09-09 下午3.48.59

螢幕快照 2018-09-09 下午3.50.14

  • Runner type : Command Line
  • Working directory : 選擇Web專案的目錄
  • Command script : npm install 他會去讀取Web專案下的package.json並安裝angular 的 module

Step 4.

接著再加一個Build Step 用來Build Project以及Publish to IIS

這段的詳細設定可以參考之前的文章 :

螢幕快照 2018-09-09 下午4.00.01

Step 5.

到這一步基本上已經完成設定了,但是因為我沒有把node_modules加入專案中

螢幕快照 2018-09-09 下午4.12.32

在.csproj的專案檔中就不會去產生node_modules,所以相對的TeamCity在Publish時也不會把 node_modules Publish 到我們 IIS Web 的目錄下,這時候在瀏覽器開啟網頁時就會發現少了很多JS檔案 ,接著下一個步驟我們就要來解決這個問題

Step 6.

如果沒有把node_modules 加入專案中,在Publish時就不會被複製到 IIS Web 目錄下,所以這邊的解決方式是在 Publish 的設定檔中,加入一段設定,跟 MSBuild Tools 説哪一個資料夾也要Publish 上去

  • 開啟Publish設定檔

螢幕快照 2018-09-09 下午4.22.10

  • 在<Project>前面加入以下設定

螢幕快照 2018-09-09 下午4.26.06

接著就可以把這一段直接Push到 Git Server上面,等 TeamCity Run 完之後就會發現node_modules已經成功的被複製到IIS中了

以上就是Angular 6與 TeamCity 整合的簡單筆記,有什麼疑問也歡迎各位前輩提出來一起討論,謝謝~

Facebook Comments

ASP. NET Web Api 2 學習筆記

最近因為要把公司的一個 Java Web Api 的 Project,轉換成 ASP. NET Web Api 2 ,所以花了一點時間去研究一下ASP. NET Web Api 2,也特地花了錢去外面拜師求藝,就是希望可以掌握其中的精髓,以下就是對ASP. NET Web Api 2的一點心得及筆記~

一 、了解Rest

  • REST(Representational State Transfer) 表現層狀態轉換
  • Roy Thomas Fielding博士於2000年在他的博士論文中提出
  • 為了設計不同系統在網路傳遞資料而生的架構風格
  • 是一種風格而不是標準
  • 通常基於使用HTTPURI,和XML以及HTML這些現有的廣泛流行的協定和標準。

二、Restful的特色

  • 統一介面(Uniform Interface) :
  1. 以資源(Resources)為基礎 ,透過唯一的URI存取各個資源
  2. 透過Json/XML將Request/Response物件表現(Representations)出來
  • 無狀態(Stateless)  :  所有狀態都記錄在Client端,Server端不會紀錄狀態
  • 可快取(Cacheable) :回應的資料可快取,用以改善效率
  • 分層設計(Layered System) :不同層級的元件可以分工,提高擴充性
  • 客戶伺服器分離模式(Client-Server) :透過單一介面提高Client-Server互動的可見性

三、符合Restful的限制

  • 客戶伺服器分離模式(Client-Server)
  • 無狀態(Stateless)
  • 可快取(Cacheable)
  • 統一介面(Uniform Interface)
  • 分層設計(Layered System)

只要符合上述6點我們即可以說此Web Api符合Restful 風格設計(Http即是符合Restful的設計)

四、Restful Web Api的設計

  • 統一介面(Uniform Interface),來表達所使用資源    Ex :  ~/api/books
  • 將動作(Action),放在Http Method中     Ex :  Get  ~/api/books
  • 回應狀態放置於Http StatusCode 中    Ex : HTTP/1.1 201 Created

五、常用的Http Method及狀態碼

Function URI Http Method HTTP StatusCode
   新增 /books POST 201,400,401,409,500
   修改 /books/{id} PUT 204,400,401,404,409,500
   刪除 /books/{id} Delete 204,400,401,404,409,500
   查詢 /books/{id} Get 200,400,401,409,500
   清單 /books Get 200,400,401,409,500

一個好的Api設計,是可以從回傳的狀態碼,就可以看出Api成功或失敗以及失敗的原因是什麼,所以定義回傳的狀態碼是很重要的

Http Status Code 參考 : http://www.restapitutorial.com/httpstatuscodes.html

了解基本的Web Api設計風格後我們就可以來實作囉~

Step 1   在Visual Studio新增一個Web Api 2的專案

螢幕快照 2018-05-29 下午5.30.39

Step 2 新增一個ApiController => BooksController

螢幕快照 2018-05-29 下午5.35.28

Step 3 路由設定,Web Api有兩種路由設定

  1. 傳統路由:由 WebApiConfig.cs 來定義路由規則與集中管理
  2. 屬性路由:由Controller來定義Api路由

所以我們可以先打開App_Start\WebApiConfig.cs來看一下,會發現專案原本就預設把兩種路由模式都開啟了

基於設計Restful 的彈性清楚的路由結構,會比較建議使用屬性路由來設計

Step 4 於BooksController加入屬性路由設定

1. 在動作方法上加上[Route]屬性規則

2. 指定路由參數型別

3.路由參數Default Value

以上兩種會有相同的結果

4.指定路由套用順序(預設為0,數字越小表示優先權越高)

  • 先比對是否設定路由順序 ( Order ) (預設值為 0)   ex :  [Route(“api/books”)]
  • 純字串、無參數、無限制的路由 (Literal segments)  ex :  [Route(“api/books”)]
  •  有路由參數,且有套用限定詞  ex :  [Route(“api/books/{id:int}”)]
  • 有路由參數,且無套用限定詞  ex :  [Route(“api/books/{id}”)]
  • 有萬用路由參數 (Wildcard parameter) 且有套用限定詞  ex :  [Route(“{*id:int}”)]
  • 有萬用路由參數 (Wildcard parameter) 且無套用限定詞  ex :  [Route(“{*id}”)]

5.在Controller加上[RoutePrefix]

最後我們可以用PostMan實際測試一下

螢幕快照 2018-05-30 下午6.43.23

以上就是屬性路由的介紹,接下來要來實作一下也很重要的,如何去定義自己的回應內容~

Step 5  Web Api 的 Action Result,總共會有4大類

  • void : 預設回應 HTTP 204 ,不會有內容
  • IEnumerable<T> : 任意型別,預設回應 HTTP 200,自動序列化物件到 HTTP 回應主體 (自動判斷 JSON 或 XML 格式)
  • IHttpActionResult : 透過呼叫 ExecuteAsync 方法來建立 HttpResponseMessage 物件
  • HttpResponseMessage : 此為 Web API 較為底層的回應訊息物件 (可回應任意內容) 只要針對該物件的屬性寫入資料,就可以自動產生 HTTP 回應訊息

1. void => 不會有回傳內容,回傳代碼為204

用PostMan實際測試

螢幕快照 2018-05-29 下午7.11.15

2. IEnumerable<T> => 回傳任意型別,回傳代碼為200

用PostMan實際測試

螢幕快照 2018-05-30 下午6.43.23

3. IHttpActionResult => 可自定義回傳代碼及內容,較常使用

  • 可以直接呼叫System.Web.Http.Results 中的代碼類別生成回傳物件

EX :  System.Web.Http.Results.Ok(“Hello!”) => 200
System.Web.Http.Results.BadRequest(“Hello!”) => 400
System.Web.Http.Results.NotFound(“Hello!”) => 404
可參考官網的說明

用PostMan實際測試

螢幕快照 2018-05-31 下午11.49.48

4. HttpResponseMessage => 最底層物件,可回傳任意內容,有兩種建立方式

  • 透過 Request.CreateResponse 建立 HttpResponseMessage 物件

    用PostMan實際測試

    螢幕快照 2018-06-01 上午12.27.01

  • 直接建立 HttpResponseMessage 物件

    用PostMan實際測試

    螢幕快照 2018-06-01 上午12.35.48

     

以上就是Web Api設計風格,路由,回傳型態及回傳代碼的簡單介紹,因為也是初學者,所以內容如有錯誤或是需要更精進的地方也歡迎大家指教!

 

Facebook Comments

ASP. NET Web Api 2 透過 JWT 進行資料驗證

最近因專案需求開始接觸Web Api,在開發過程中為了要符合Restful中的「無狀態(Stateless)」,所以在資料驗證的部分就跟以往在Server Side判斷資料狀態的做法完全相反,必須把狀態儲存在Client端才符合Stateless,因此就開始在網路上看了一些資料,最後決定使用簡單又容易上手的JWT來做資料驗證。

JWT全名為JSON Web Token,是把資料加密後透過JSON的格式傳遞,總共分為3個部分header、payload和signature,並透過標點符號「.」將其串接起來,而這3個部分都會在前端透過Base64來解密,並且返回JSON格式的資料

  • header包含了加密演算法及token類型這兩項數據

  • payload主要是存放資料包含JWT規範的標準數據及自定義的數據

  • signature主要是存放對header 及 payload加密的簽章演算法的字符串(ex: HS256,HS512 …等)

最後再將組好的字串前面加上Bearer存放至Http Request的 header中

螢幕快照 2018-04-08 下午5.22.28

在開始時做前,可以先看一下JWT的流程圖喔~

jwt-diagram

圖片來源

  1. client 傳送帳號密碼作為驗證的資料
  2. server將帳號密碼透過自定義的key及演算法加密後組成JWT的格式回傳至client
  3. client透過base64來解密成JSON格式
  4. client send request時,在header 的 Authorization中加入bearer + token
  5. server必須使用相同的key及演算法解密驗證資料,如果沒錯即回傳client要求的資料

大致了解JWT流程之後,接下來就可以來實作囉~

step 1. 首先我們從NuGet安裝JWT的加密工具jose-jwt

螢幕快照 2018-04-11 下午5.37.11

step 2. 建立一個類別JwtAuthUtil.cs,負責產生token

螢幕快照 2018-04-11 下午5.49.29

加入此段加密產生token的程式碼

step 3. 建立一個LoginController : ApiController 帳號密碼正確的話就呼叫這個方法後回傳token

step 4. 接下來我們可以先啟動專案,用PostMan來測試一下是否有成功取得token

螢幕快照 2018-04-12 上午11.07.10

由上圖可知我們經由帳號密碼登錄已經成功取得token了~

接下來我們每個呼叫api的動作都會使用取得的token來做身份驗證,所以我們需要加入驗證token是否正確的程式碼。 由於可能會有很多隻不同功能的api,所以我們驗證的程式把它寫在request一定會經過的ActionFilter中,就不用每隻api都需要去呼叫這段程式碼,只需把不需驗證的api在裡面做排除的動作即可。

step 5. 新增一個 JwtAuthFilter 繼承 ActionFilterAttribute,並且Override OnActionExecuting這個方法,在這個方法中我們除了要驗證Token是否正確,還會判斷token時效是否過期,並且排除Login不需驗證

接著要把這隻JwtAuthFilter註冊在Global.asax.cs的Application_Start,網站啟動時才會生效

step 6. 新增一個HomeController : ApiController來簡單的測試

開啟PostMan,第一次我們測試不輸入Token,看是否會出現預期的錯誤

螢幕快照 2018-04-12 上午11.48.18

結果有出現我們自己給的Lose Token的錯誤訊息,表示Filter有成功地去驗證

接著我們輸入Token,測試是否能順利通過Filter驗證

螢幕快照 2018-04-12 上午11.54.14

如圖所示,輸入正確Token後,就成功通過Filter的驗證了~

針對Web Api使用JWT,以及使用PostMan來驗證Api的簡單介紹就到這裡,如有什麼問題也歡迎大家留言討論喔

以下附上程式碼連結供大家參考https://github.com/jimmingOu/WebApi.JWT

 

Facebook Comments

使用 TeamCity 實現 Auto Deployment ~ Asp.Net設定篇

繼上一篇設定完Asp.Net的Auto Build之後,接下來這一篇就要來介紹Deployment After Build ,Auto Deployment 這邊會透過 Visual Studio 的 Publish 來完成,所以文章的一開始我們會需要先完成 Visual Studio 的 Publish

step 1.  在設定Visual Studio Publish之前,我們必須在IIS上安裝Web Deploy的相關軟件才能設定成功,所以一開始我們先來安裝Web Deploy

透過下圖的「取得新的網頁平台元件」來安裝Web Platform

螢幕快照 2018-03-20 上午11.48.21

點選安裝即可

螢幕快照 2018-03-20 上午11.50.37

安裝完成後IIS介面就會多出一個Web Platform的選項,如下圖

螢幕快照 2018-03-20 上午11.56.03

step 2. 點選Web platform來安裝Web deploy的相關軟件

在右上方搜尋Web deploy,接著安裝下圖紅匡處的3個軟件

螢幕快照 2018-03-20 下午12.01.13

安裝完成後就會發現Server那一層多了一些選項

螢幕快照 2018-03-23 下午6.08.58

Application也多了一個項目

螢幕快照 2018-03-23 下午6.09.14

step 3 點選Sever那一層的Management Service,啟動remote connection

螢幕快照 2018-03-26 下午12.19.14

螢幕快照 2018-03-23 下午6.13.17

ps. 記得先stop才能修改喔,修改後也記得start

step 4 在Application點選IIS Manager Permission,加入Server上存在的帳號(VS Publish時要用的)

螢幕快照 2018-03-23 下午6.09.14螢幕快照 2018-03-23 下午6.15.26

step 5. 將剛剛設定的帳號jim加入網站目錄下的權限,這樣才可以對這個網站存取

螢幕快照 2018-03-26 下午1.52.39螢幕快照 2018-03-26 下午1.52.54

step 5. 記得打開Webdeploy 預設的port : 8172

螢幕快照 2018-03-26 下午12.33.24

step 7 接著我們回到Visual Studio,在專案上按右鍵 >> 發行

螢幕快照 2018-03-26 下午1.58.18

step 8 選擇IIS >> 發行

螢幕快照 2018-03-26 下午2.01.17

step 9 輸入發行相關設定後,可以驗證連線,沒問題後就可以儲存

伺服器:Server的遠端ip or DNS Name

網站名稱 :IIS上建立的網站名稱,也可使用預設的Default Web Site

使用者名稱與密碼:剛才加入Permission的帳號密碼

目的地URL : 發行後欲開啟網站的網址

螢幕快照 2018-03-26 下午2.06.53

到這邊我們已經完成從Visual Stusio發行到IIS 的設定,大家也可以發行看看是否可以成功把網站Deploy 到IIS

接下來TeamCity就準備透過剛剛的設定來幫我們Auto Deploy Web Site

step 10 我們回到TeamCity並且進入Build Step的設定畫面,點選Edit

螢幕快照 2018-03-26 下午2.19.26

step 11 在最下方的Command line parameters輸入以下內容

螢幕快照 2018-03-26 下午2.18.01

PS. PublishProfile=”CustomProfile” >> CustomerProfile 是剛才我們在建立玩發行設定檔後會產生的一隻檔案CustomerProfile.pubxml,Teamcity會透過這個設定檔來幫我們Deploy,所以這隻檔案也記得要Push到Git Server上面喔~

螢幕快照 2018-03-26 下午2.25.04

最後就可以在TeamCity上測試是否可以成功Deploy囉~

PS. 最後筆者在Deploy的時候有遇到權限不足的錯誤

螢幕快照 2018-03-26 下午2.17.31

這邊有兩種解決方式

  1. 在CustomerProfile.pubxml加入密碼<Password>myPassword</Password>

螢幕快照 2018-03-26 下午2.35.04

2 .在Build Step 的 Command line parameters加入 /P:Password=myPassword

螢幕快照 2018-03-26 下午2.37.19

以上就是TeamCity 上 Asp.net to IIS Auto Build的簡單介紹,過程如有什麼錯誤也請大家多多指教~謝謝~~~

 

Facebook Comments

使用 TeamCity 實現 Auto Build ~ Asp.Net設定篇

歷經一段時間終於把TeamCity Auto Build的部分告一段落,但是都是以Java Project來當範例,那Asp.Net有機會可以透過TeamCity來實現Auto Build嗎?答案是當然可以~接下來就為大家簡單的介紹Asp.Net在TeamCity上面的Auto Build

前情提要:

因為TeamCity會透過MSBuildTools來執行,所以如果電腦上面沒有MSBuildTools的話TeamCity Build Agent 就會有 「Unmet requirements: MSBuildTools12.0_x86_Path 」這個錯誤訊息,最快的方式建議大家可以在TeamCity的Server裝Visual Studio就可以解決這個問題囉~(Ps. 建議安裝與開發環境相同版本的Visual Studio,不然可能會有版本不相容的問題出現)

step 1. 我們一樣到Administrator下,點選Create Project

螢幕快照 2018-03-16 下午4.35.59

step 2. 接著選取Project的Repository

螢幕快照 2018-03-16 下午4.38.26

step 3. 設定好Project後會導至Build Step的頁面,系統一樣會幫我們自動偵測Build Steps,這次只要選擇Visual Studio(sln),接著點選Use Select螢幕快照 2018-03-16 下午4.41.24

step 4. 最後記得點選Edit進去確認,預設的Visual Studio的版本是否跟TeamCity Server 安裝的一樣,否則可能會Build Faild

螢幕快照 2018-03-17 下午11.26.22

螢幕快照 2018-03-17 下午11.24.44

確認完成點選Save,Auto Build的部分就完成囉~

最後Java的部分可以Auto Deployment到Tomcat,JBoss….等Server上,相對的Asp.Net的部分也可以Auto Deployment 到IIS上面,下一篇在跟大家介紹一下如何在TeamCity實作Auto Deployment~

Facebook Comments

使用 TeamCity 實現 Auto Build ~ Github設定篇

在介紹完TeamCity與BitBucket的AutoBuild之後,因為也很常用Github來作版本控管,所以也稍微研究一下Github的設定,其實跟BitBucket大同小異,接下來就簡單地跟大家介紹一下,TeamCity與Github之間的設定~

step 1. 首先我們在TeamCity上,Crete Project 選擇 From Github,這時候會跳出要求我們輸入Client ID and Client Secret 的視窗,我們就先停留在這個頁面

螢幕快照 2018-02-21 上午10.36.30

螢幕快照 2018-02-21 上午10.45.32

step 2.  接著我們需要到Github產生Client ID and Client Secret,首先我們先登入Github然後選擇右上角的Settings

螢幕快照 2018-02-21 上午10.47.33

step 3. 接著選擇Developer settings

螢幕快照 2018-02-21 上午10.47.46

step 4. 選擇OAuth Apps 然後點選 New OAuth App

螢幕快照 2018-02-21 上午10.47.57

step 5. 輸入自己定義的Application name,Homepage URL及 Authorization callback URL則可以到我們「step 1.」TeamCity 彈出的視窗上複製,填好相關資訊後就可以Register application

螢幕快照 2018-02-21 上午10.48.42

step 6. 將Github產生的Client ID and Client Secret填入TeamCity然後點選Save

螢幕快照 2018-02-21 上午11.08.13

螢幕快照 2018-02-21 上午10.45.32

step 7. 在TeamCity上點選Sign in to GitHub,之後TeamCity就會載入Github上的專案,接著就可以選擇自己想要AutoBuild的專案了

螢幕快照 2018-02-21 上午11.10.54

螢幕快照 2018-02-21 上午11.15.25

到這邊TeamCity及Github的相關設定已經完成,剩下的步驟跟BitBucket一樣,大家可以參考一下前幾篇文章,最後大家應該都還記得在BitBucket上有一個Webhook的功能可以在每次我們Push後及時通知TeamCity幫我們Build Project,當然Guthub上也有類似的功能~

接下來就跟大家介紹如何在Guthub上即時通知TeamCity Build Project

step 1. 我們先在Github上選擇我們要AutoBuild的專案,接著點選專案的Settings,然後點選Integration & services

ps. 這邊也可以使用Webhook的方式,設定上跟BitBucket差不多,所以這邊介紹的是GitHub另外提供的Integration & services,其實Integration & services也是Webhook一樣的概念,只是把一長串的Url拆成輸入介面給使用者用輸入的方式去做設定,這樣其實也增加了一些設定上的便利性

螢幕快照 2018-02-21 上午11.26.17

step 2. 點選Add services,然後選擇TeamCity

螢幕快照 2018-02-21 上午11.33.40

step 3. 接著輸入相關設定後點選Add service

Base url:TeamCity Server的網址

Build type:專案在TeamCity上的build configuration Id(參考此篇step 2

Branches:如果有指定的分之才填沒有的話就勾選 Full branch ref

Username:TeamCity上的使用者名稱

Password :TeamCity上的使用者密碼

螢幕快照 2018-02-21 上午11.44.04

 

到這邊Github上的即時通知已經完成設定接著就可以享受AutoBuild帶來的便利囉~~~以上就提供給大家參考,如有不對的地方也請大家多多指教~

Facebook Comments