Alan Tsai 的學習筆記


學而不思則罔,思而不學則殆,不思不學則“網貸” 為現任微軟最有價值專家 (MVP)、微軟認證講師 (MCT) 、Blogger、Youtuber:記錄軟體開發的點點滴滴 著重於微軟技術、C#、ASP .NET、Azure、DevOps、Docker、AI、Chatbot、Data Science

[從.Net工程師的角度來看DevOps 23]在AppVeyor執行Build Script - 整合build資訊到github

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

在上一篇([從.Net工程師的角度來看DevOps 22]免費的CI Server - AppVeyor介紹)了解到了如何把專案關聯到AppVeyor裡面,然後可以很簡單利用AppVeyor裡面內建的一些設定來build專案。

在這篇,我們將完全拋棄AppVeyor的內建機制,改成用我們建立出來的build script來執行。

有自己的build script不止在設定上變得更簡單,local跑的和CI Server跑的會一樣,並且如果要整合到另外一個CI Server也不會有什麼問題。

調整AppVeyor來執行build script

任何CI Server基本上都會有地方讓我們關掉內建的執行方式,改成直接執行我們指定的檔案,AppVeyor當然也不例外。做法很簡單,首先:

  1. 切換到Settings
  2. 然後左邊menu的build
  3. 上面的部分直切換到SCRIPT
  4. 選擇PS代表powershell
  5. 內容輸入框指向build script的位置: src\BuildProject\build.ps1
  6. 最後保存修改
image
修改build的畫面

再來他內建會自動去找Test相關的dll並且做執行。由於我們的build script已經會做Test,因此可以直接把內建機制關掉節省時間:

  1. 切換左邊menu的TEST
  2. 設定改成off表示不要跑
  3. 最後儲存
image
把Test關掉

查看執行結果

上面設定好了之後,就可以切回到LATEST BUILD的畫面去手動觸發我們的build:

image
build結果,可以看到和我們localbuild的output內容一樣
由於我們是public專案,所以可以直接看到我們的build log:https://ci.appveyor.com/project/alantsai/devops-psake/build/1.0.4

設定好了之後,如果能夠一目了然在專案上面看到目前build情況會很好,因此,我們可以設定一個Badge(徽章)放在我們repo的readme裡面。設定方式就是:

  1. 左邊menu切換到Badges
  2. 找到要顯示的那段,並且貼到ReadMe.md
  3. push了之後github就會看到
image
取得badge,放到readme在github看到
這邊會注意到一件事情,當我把放badge的commit push到git了之後,AppVeyor會透過WebHook自動觸發。換句話說,每一個push就會build一次。這就是Continus Integration。

結語

透過這篇希望對於為什麼建立自己的Build Script更加有感,雖然CI Server上面設定很方便,但是透過我們build script執行也很方便(只是建立比較麻煩),並且local執行起來的樣子和CI Server執行的一樣。

再來看到了如何整合我們的build狀況到Github,並且AppVeyor會自動在我們push的時候執行build,形成了Continus Integration(CI)

在下篇,我們將會看另外一個免費的CI Server,Visual Studio Team Service(VSTS),並且了解一下和AppVeyor的差異和內建VSTS提供的build方法。


如果文章對您有幫助,就請我喝杯飲料吧
街口支付QR Code
街口支付QR Code
台灣 Pay QR Code
台灣 Pay QR Code
Line Pay 一卡通 QR Code
Line Pay 一卡通 QR Code
街口支付QR Code
支付寶QR Code
街口支付QR Code
微信支付QR Code
comments powered by Disqus