前面我們已經建立了TeamCity Server 和一個 Agent,接下來我們為一個.net core 控制檯程式配置自動化的編譯。
建立 .net core 專案
我們在本地建立一個簡單的 .net core demo程式 hello (這裡假設您已經安裝了.net core 的 SDK):
mkdir hello cd hello dotnet new dotnet restore dotnet run
如果能看到輸出 ”Hello World!”,就說明demo 程式已經OK了:
否則,請參照 .net core的相關文件進行排查。
管理原始碼
您可以使用任何程式碼管理工具來管理demo程式的程式碼,因為TeamCity幾乎支援我們能見到的所有原始碼管理工具。筆者使用的是TFS,所以後面的配置會以TFS為例進行。
好了,我們已經完成了準備工作,下面就進入TeamCity開始建立相關的配置。
建立 TeamCity project
TeamCity 透過工程來管理專案相關的配置,所以我們先為 hello 程式建立一個 project。
點選 "Create project" 按鈕開始建立 project:
選擇手動建立相關的配置,然後進入建立 project 頁面:
輸入 project 的名稱,然後點選 "Create" 按鈕完成 project 的建立。
建立 build 配置
Project 可以包含一個或多個 build 配置,這些build 配置才是正幹活的單位。我們的目的是要完成 hello 程式的自動化編譯,所以我們需要建立一個 build 配置來完成這個工作。
選擇手動建立一個 build 配置:
為新的 build 配置指定一個名稱, 然後點選 "Create" 按鈕完成建立並開始配置這個 build。
配置原始碼工具
要編譯程式碼,首先要解決從哪裡獲取程式碼的問題,透過建立一個新的 VSC Root,我們告訴 TeamCity 從TFS 上獲取程式程式碼。當然,在這裡要選擇正確的 VCS 型別。
接著為新的 VCS Root 指定名稱,並且設定獲取程式碼的詳細資訊:
設定完成後可以先點選 "Test connection" 按鈕測試一下,然後點選 "Create" 按鈕完成 VCS Root 的建立。
看樣子 TeamCity 已經可以從 TFS 上獲取程式碼了,但我們仍然需要關注兩處細節。
1. 管理獲取到 Agent 上的程式碼的路徑:
此處的設定為: 把取到的程式碼統統放入 hello 目錄中。
2. 透過 TeamCity Server 來獲取程式碼
由於我的 Agent 並不能直接連線 TFS, 所以我們可以讓 TeamCity 從 TFS 上獲取程式碼然後傳遞到 Agent 上去編譯。
新增 build 步驟
由於稍微複雜一些的任務都不能一步搞定,所以可以為一個 build 配置新增多個 build 步驟。執行的時候,這些步驟被一個接一個的順序執行。
我們的任務太簡單了,所以新增一個命令列型別的 build 步驟就足夠了:
其實,我們就是在 hello 目錄下執行了 dotnet restore 和 dotnet build 兩條命令而已。
收集編譯產物
為了得到編譯後的程式,我們需要把它們收集起來,然後透過 TeamCity 進行分發。
其實就是指定一個目錄,然後讓 TeamCity 把裡面的東西都新增到一個壓縮包裡。
到此為止,TeamCity Server 上的配置已經完成了。但是真正幹活的是 Agent, 所以我們還要看看 Agent 到底能不能完成編譯 hello 程式的任務。
為 Agent 安裝 .net core SDK
因為真正的編譯是在 Agent 上完成的,所以我們必須保證,hello 程式能夠在 Agent 被編譯。那麼當務之急就是在 Agent 上安裝 .net core SDK。我們的 Agent 的 OS 是 Ubuntu 14.04,所以參照 .net core SDK 的安裝說明進行安裝即可:
sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list' sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893 sudo apt-get update sudo apt-get install dotnet-dev-1.0.0-preview2-003131
檢查勞動成果
開啟 TeamCity 進入 build 配置頁面,點選 "run" 按鈕:
在編譯完成後,我們可以點選下載編譯後的 hello 程式。