[教學] AppVeyor – 超易用 .NET CI 持續整合平台,輕鬆自動建置和整合項目,提升團隊工作效率

最近都在接觸一些大型 Github C# 項目,發現不少項目都有使用一個叫做 “CI" 的持續整合和自動化建置平台,所以就想試一下 AppVeyor 這個專為 .NET 而設的 CI 平台能怎樣提升團隊和工作效率。

CI 全名 Continuous Integration (持續整合),主要幫助大項目/團隊項目提供持續整合,單元測試,自動建置等功能,每個項目成員 Push 了之後就會自動測試和建置,有沒有錯誤一目了然。

而 Appveyor 算是在 CI 服務中唯一一個專門為 .NET 提供持續整合的平台,其他的 Travis CI 等等都只提供 Mono 平台的 .NET 程式使用,所以 Appveyor 絕對是 .NET 開發人員的好服務。

服務名稱 : Appveyor
服務網址 : https://ci.appveyor.com

申請教學 :

第一步
首先我們要先登入 Appveyor
在登入頁面可以使用 Github / Bitbucket 等帳號登入
這樣就能直接使用 Github repo 來建立 CI project

image

第二步
我在這裡就鏈接 Github 來登入 Appveyor
按下 Github 按鈕後會要求使用授權
按 Authorize 即可

image

第三步
授權後會回到 Appveyor 項目主頁
在這裡可以看到目前的 Appveyor project
在這裡我們按 New Project 來新增一個 project

image

第四步
然後按 Authorize Github 來取得 Github repos

image

第五步
然後再一次按 Authorize 授權

image

第六步
接著就會看到你 Github 的 Repo
這時候可以按右邊的 Add 按鈕來新增 CI project

image

第七步
新增 CI project 成功~
按 New Build 即可建置

image

項目設定 :

本設定教學只是一個很基本的設定教學,要看完整的教學請看官方文檔 (英文) :

http://www.appveyor.com/docs/

General

appveyor-seeting-1

  • Project Name – 項目名稱
  • Next build number – 下一個 build 的版本
  • Build version format – Build 版本格式,可以使用 {build} 和 {branch} 變數 (例如我這裡 Next build number 是 3 ,那下一個版本就是 1.0.3)
  • GitHub repository – Github 項目名稱,格式 : 用戶名稱/Repo名稱
  • Default branch – 預設的分支
  • Branches to build – 需要建置的分支
  • Do not build tags – 不要建置標籤
  • Fetch repository as zip archive – 直接下載 zip 格式的 Repo ,能加快速度
  • Git clone depth – 留空就會 Clone 全部 Repo 的 Commit
  • Webhook URL – Webhook 網址,預設已新增在 Github 的 repo,Push 上 Github 之後 Appveyor 就會自動 build
  • Build priority – 建置優先順序,1 是最高
  • Build schedule – 建置排程,可使用此工具建立 Crontab expression
  • Ignore appveyor.yml - 忽略 appveyor.yml
  • Custom configuration .yml file name – 自定 appveyor.yml 檔案名稱
  • Skip branches without appveyor.yml - 勾選後將會省略沒有 appveyor.yml 檔案的分支
  • AssemblyInfo patching – 程式建置前設定版本號碼
  • On build success script, On build error script, On build finish script – 建置事件可以自定腳本

Environment

appveyor-seeting-2

  • Operating system – 選擇建置系統和環境
  • Clone directory – Clone 目標本機目錄
  • Environment variables – 設置環境變數
  • Services – 選擇 SOL 服務
  • Hosts – 自定 hosts 檔案
  • Cached directories and files – 緩存目錄

Build

appveyor-seeting-3

  • Configuration – 建置選項,例如 : Debug, Release
  • Platform – CPU 平台設定
  • Visual Studio solution or project file – 手動設置 csproj / sln 項目檔案路徑
  • Enable parallel builds – 勾選後開啟平行建置
  • Verbosity level – 選擇建置資訊詳細級別,Quiet 最簡單,Detailed 最詳細
  • Automatic packaging – 選擇是否建置套件
  • Before build script, After build script – 建置事件腳本

Tests

appveyor-seeting-4

  • Test Assemblies – 測試組件
  • Test categories – 測試分類
  • Parallel testing groups – 平行測試的組別
  • Before tests script, After tests script – 測試事件腳本

Artifacts

appveyor-seeting-5

  • Add artifact – 新增需要上傳到 Appveyor 雲端伺服器的檔案,詳細說明請看官方文檔

Deployment

appveyor-seeting-6

  • Deployment provider – 發行提供者
  • Deployment settings – 發行選項
  • Deploy from branch – 勾選後可自定要發行的分支

NuGet

appveyor-seeting-7

Notification

appveyor-seeting-8

  • 建置成功/失敗時可以即時通知,可選擇 Email 或者其他服務

Permissions

appveyor-seeting-9

 

  • 這裡可以設定項目的權限

Badges

appveyor-seeting-10

 

  • 這裡能取得建置狀態的貼紙

Export YAML

appveyor-seeting-11

  • Download appveyor.yml – 下載 appveyor.yml 檔案

如何在 Github 顯示建置狀態 ?

第一步

首先來到 Settings 的 Badgets 分頁

appveyor-seeting-10

第二步

然後可以選擇使用複

Sample markdown code (整個 Repo 的建置狀態)

或者

Branch sample markdown code (分支的建置狀態)

然後複製 Markdown 語句

這裡我就選擇 Sample markdown code

appveyor-badges-1

第三步

然後去 Github 項目的主頁

修改 README.md 檔案

並在標題旁邊貼上 Markdown 語句

完成~

appveyor-badges-2

效果圖

appveyor-badges-3

總結

透過 Appveyor 這個強大的 .NET CI 平台,除了能增強團隊的開發效率,還可以進行單元測試、自動發行等等功能,十分方便。