天天看點

持續內建工具TeamCity快速入門

大名鼎鼎的Intellij IDEA大家都聽說過吧,它的出品公司Jetbrains不僅推出了一系列好用的IDE,同時還推出了現在正熱的Kotlin語言。Jetbrains還有一個非常好用的産品就是今天要介紹的持續內建工具 TeamCity

安裝

Windows下安裝

要安裝TeamCity很簡單,首先到

下載下傳頁面

下載下傳TeamCity,由于這裡我用的是Windows系統,是以下載下傳Windows版本的安裝包。下載下傳完成之後安裝即可。在Windows下安裝有一個好處就是可以安裝為服務,這樣以後如果需要管理TeamCity的狀态會更友善一些。這裡要說下,TeamCity分為兩個服務,一個叫做建構代理,實際的項目建構都是通過這個代理服務來執行的;另一個服務就是TeamCity的網頁版控制端,讓我們可以友善的通過網頁進行管理。

當然在下載下傳頁面上可以看到有多個作業系統,不論是Windows、macOS還是Linux都可以運作TeamCity。

Docker下安裝

現在虛拟化服務越來越流行了,因為虛拟化真的非常友善。如果需要在Docker中啟用TeamCity也同樣簡單。TeamCity對應的DockerHub頁面在

這裡

首先要做的就差拉取TeamCity鏡像。

docker pull jetbrains/teamcity-server
           

拉去鏡像之後啟動它的執行個體即可。下面是官方頁面上給出的例子,當然這裡的幾個名稱和檔案位置可以根據需要自行修改。

docker run -it --name teamcity-server-instance  \
    -v <path to data directory>:/data/teamcity_server/datadir \
    -v <path to logs directory>:/opt/teamcity/logs  \
    -p <port on host>:8111 \
    jetbrains/teamcity-server
           

使用TeamCity

初始化

安裝完成并啟動TeamCity之後,我們就可以在Web頁面中通路它了。如果是Windows系統,那麼預設端口是80,如果是其他系統則是你自己設定的端口。然後通路浏覽器的

localhost:80

即可看到TeamCity頁面。第一次使用需要配置使用者并初始化,之後稍微等待一段時間即可。

之後應該會看到類似的界面,這樣TeamCity就安裝好了。當然我建立了兩個項目,是以實際的界面可能會有所差别。

持續內建工具TeamCity快速入門

TeamCity截圖

配置資料庫

還有一個注意點就是配置資料庫了。預設情況下TeamCity使用的是内置的資料庫,性能并不怎麼樣。是以為了将來使用更加順暢,TeamCity推薦我們設定自己的資料庫。

舉個例子,如果我準備用MySQL資料庫,那麼我需要下載下傳一個MySQL的JDBC驅動

mysql-connector-java-5.1.42-bin.jar

,然後把它放到TeamCity的資料檔案夾的

lib\jdbc

下,然後在TeamCity中配置相應的資料庫使用者名和密碼以便通路資料庫。

當然這是Windows下的情況,如果使用Docker,可能不需要自己配置資料庫。另外配置玩資料庫之後并不是萬事大吉,有時候TeamCity還會幫你檢測到資料庫的性能問題,這時候隻要照着他的提示修改資料庫的配置即可。

建立項目

第一次使用TeamCity的時候會提示你建立項目。之後如果要建立項目,點選右上角的

Administration

即可。建立項目時需要提供項目代碼的URL,支援Git、SVN等工具,這裡使用了我的一個簡易小項目作為例子,它的代碼在

持續內建工具TeamCity快速入門

然後TeamCity會檢查輸入的位址,并提醒我們确認。

持續內建工具TeamCity快速入門

确認位址

這樣,項目就建立完成了。

設定建構步驟

持續內建工具需要管理項目的整個生命周期,是以僅僅添加了項目還是不夠的。下面一步就是要設定具體的項目建構步驟。不同的項目可能有不同的建構過程,是以這裡就是設定的重點了。特别要說一下,TeamCity的免費版本隻能支援20個建構步驟,是以如果需要用到更多配置的話就需要付費購買商業版了。

另外從這裡就可以看出建構工具的重要性。如果項目是Java項目,使用了業界著名的Maven或Gradle這樣的建構工具來管理項目,那麼TeamCity隻需要自動檢測就可以完成所有配置步驟。如果沒有使用這樣的工具,那麼可能需要自己設定建構過程了。(比方說我這裡的WPF桌面程式,就隻能自己設定了)

由于我用的例子是WPF桌面程式,是以這裡就來說說.NET程式的建構過程配置。如果使用了自動檢測功能的話,那麼TeamCity會自動幫你添加一個Visual Studio (sln)步驟。不過僅僅這一個步驟是遠遠不夠的,是以我們需要添加其他步驟。

持續內建工具TeamCity快速入門

自動檢測建構步驟

首先考慮到項目中可能使用多種第三方庫,而在.NET平台下第三方庫一般都是用NuGet擷取。是以我們需要添加一個NuGet步驟。首先點選上圖中的

configure build steps manually

,然後選擇

NuGet Installer

類型,在彈出的界面中設定相應的選項。

持續內建工具TeamCity快速入門

NuGet建構步驟

然後需要設定建構步驟,選擇Visual Studio (sln)即可。

持續內建工具TeamCity快速入門

建構步驟

這樣一來,項目建構的步驟就配置好了。

持續內建工具TeamCity快速入門

建構過程配置完成2

建構項目

設定好建構步驟之後,下一步就可以開始建構項目了。點選頁面上面的

Projects

,切換回項目視圖。然後點選項目右邊的

Run

即可。

持續內建工具TeamCity快速入門

運作項目

這時候建構代理右邊的空白框也會變成藍色,表示正在建構項目。等待片刻,項目就會建構完畢。一個建構任務就完成了。

持續內建工具TeamCity快速入門

建構成功

測試項目

一個成功的項目必然有完整的測試過程。還是那句話,如果項目使用了成熟的建構工具,那麼TeamCity就會自動檢測和使用這些功能。但是如果TeamCity沒有自動檢測到的話,就需要手動設定了。

首先點選對應項目的Build連結,然後點選建構設定(Settings),并在頁面下方找到建構步驟(Build Steps)。

持續內建工具TeamCity快速入門

建構設定

在前面我們添加了兩個步驟,下面還要繼續添加一個測試步驟。建立一個步驟,類型選擇Visual Studio Tests。在Visual Studio Tests下還有兩個類型,MSTest和VSTest。它們的差別在于VSTest需要TeamCity建構代理伺服器上同時安裝有Visual Studio或者Visual Studio Test Agent。然後Test file names這裡需要填寫測試項目的程式集,隻要填寫相對路徑就行了。具體程式集的位置和名稱需要根據項目來确定,我這個測試項目的情況就是如圖所示。最後如果需要檢查測試覆寫率,還可以設定最後的.NET Coverage tool。

持續內建工具TeamCity快速入門

測試設定

設定完成後再次運作建構指令,可以看到這次不僅建構了項目,還同時運作了測試,測試結果也會一并顯示。

持續內建工具TeamCity快速入門

測試結果

如果點選進入詳情檢視,還會獲得更豐富的結果。這裡我同時選擇了代碼覆寫率功能,可以看到非常友善的圖表顯示。

持續內建工具TeamCity快速入門

運作測試詳細結果

自動建構

前面所有操作全部是手動點選執行建構的。當然TeamCity也支援自動建構,預設情況下每個項目都會添加一個觸發器,當項目所在的版本控制系統更新的時候觸發建構。當然這個條件也是可以修改的。

如下圖所示,觸發器的設定在項目設定中,如果需要其他觸發器設定在這裡更改即可。

持續內建工具TeamCity快速入門

建構觸發器

郵件通知

如果建構失敗的話,TeamCity可以向你賬戶發送電子郵件提醒你狀況,不過這需要你在TeamCity中設定SMTP伺服器才行。如果是公司的話,應該可以使用公司的企業郵箱進行設定。個人建議不要使用國内的電郵,因為有些國内電郵的伺服器由于經常發送垃圾郵件,可能會被其他一些電郵拉黑,導緻無法擷取電子郵件。

持續內建工具TeamCity快速入門

電郵通知