TeamCity Build 版本控制系統配置

2022-01-13 06:01:27 字數 3128 閱讀 5429

vcs (版本控制系統) 是用來跟蹤專案原始檔版本變化的系統。它還有其它的名字,比如 scm(源**管理)。當前 teamcity 內建支援的 vcs 型別有:git, subversion, mercurial, perforce, team foundation server, cvs, starteam, clearcase, sourcegear vault, visual sourcesafe。

本文將通過例項比較詳細的介紹 build 中版本控制系統的設定。

乙個 vcs root 定義了乙個到版本控制系統的連線,這個連線包含了 teamcity 和版本控制系統通訊的所有資訊(原始檔路徑, 使用者名稱, 密碼和其它設定)。有了這些資訊,teamcity 就可以監控**的變化並且在做 build 時把**獲得到本地。您建立的 vcs root 必須屬於某個專案,它可以被這個專案和這個專案的子專案中的 build 使用。

您可以點選 「attach vcs root」 按鈕開始 vcs root 的建立過程:

選擇您的 vcs 型別,點選 「create」 按鈕:

teamcity 內建支援了主流的 vcs :

您可以選擇您使用的 vcs 的型別,然後按照提示完成 vcs root的建立。接下來筆者將通過乙個例項來說明一些細節。vcs 的型別就選擇筆者使用的 tfs (好土啊,居然還沒用上 git!)。

vcs  root 名稱需要是唯一的,以區分不同的 vcs root,我們在引用 vcs root 時就是通過這個唯一的名稱:

vcs root id 也必須是唯一的,它會被 teamcity 內部的程式引用,也可以被用作 rest api 的引數。一般我們不需要手動指定它,teamcity 會按照下面的規則自動生成:

專案名稱 + 下劃線 + vcs root名稱。

指定從**庫中獲取**的路徑:

從**庫獲取**時提供的認證資訊:

這是 tfs 相關的乙個選項,當 teamcity 通過 build agent 獲取**時這個選項會起作用。當選中 「enforce overwrite all files」 時,teamcity 會通過 請求 tfs 更新所有的檔案。一般情況下您是不需要這麼做的。當然,有時您可能會懷疑 teamcity 沒有從 tfs 上獲取**,那時您就可以使用這個選項:

這個選項指出 teamcity 多長時間檢查一次 vcs 庫的變化。預設情況下使用的是從系統繼承來的值。在 administration | global settings 頁面有系統級別的設定。如果您要自定義這個值,可以選擇 custom進行設定。

在這裡您可以指定當前建立的 vcs root 屬於哪個專案:

您可以在完成建立前檢查當前的配置是否可以正確的連線到 vcs,點選 「test connection」 按鈕進行測試:

連線成功的樣子:

下面點選 「create」 按鈕完成 vcs root的建立。

我們可以為 vcs root 指定適當的規則,從而控制取到的**在 build 時的路徑。vcs checkout rules 允許我們獲取庫中部分的**,並且可以對映到 build agent 上的指定目錄。

具體的語法請參考《teamcity : build 基本配置》一文中的 artifact paths 小節。

注意,checkout 規則只能指定目錄不能指定單個檔案,也不能使用統配符。

vcs checkout mode 用來指定源**檔案到達 build agent 的方式。從版本 10 開始 teamcity 支援四種型別的 vcs checkout mode:

這種方式是最新新增的,也是推薦的預設設定。取**的方式為先嘗試從 build agent 上向版本庫請求**,如果不行,再從 teamcity server 上嘗試。

總是嘗試從 teamcity server上請求版本庫,然後把**傳送到 build agent 上。

總是嘗試從 build agent 上向版本庫請求**,這種方式的好處是 build agent 上有完整的工作區,您可以在 build 的過程中呼叫版本庫的命令。

這種模式下執行 build 前是不會從版本庫獲取**的,主要用於除錯。比如您可以在 build 目錄中進行檔案的修改,然後啟動一次 build,從而驗證您的變更。

預設情況下,build 在 build agent 上的工作目錄是被 teamcity 控制的。但您可以通過設定 checkout directory 項為 custom path 來自行控制 build 的工作目錄:

個人感覺 teamcity 預設的選項已經很好了,除非必要,否則不要自己指定這個選項。

如果您有需求必須再每次 build 之前清空 build 的工作目錄,那麼您可以通過設定 clean build 選項來達到目的:

允許顯示來自 snapshot dependencies 的變更:

build 中版本控制系統的配置的重要性無須多言,好在 teamcity 提供了比較靈活多樣的配置方式,讓我們可以簡單便捷的實現各種用例。

TeamCity Build 基本配置

build 配置的名稱 作為描述資訊,description 會顯示在 build name 的後面 我們可以為 build number 指定乙個格式。不同的使用者總是有不同的需求,如果您想要 build number 顯示為乙個自增的整數,就可以把 build number 指定為 build....

Android SDK版本和ADT版本

android早期的版本號有點 混亂 比如android 2.2對應的adt版本為adt 0.9.9 而android 2.3對應的的adt版本則突然 躍遷 為 adt 8.0.0.zip。而且android sdk還包含sdk tools和sdk platform兩個東西,它們的意義也不同,它們也...

Android SDK版本和ADT版本

android早期的版本號有點 混亂 比如android 2.2對應的adt版本為adt 0.9.9 而android 2.3對應的的adt版本則突然 躍遷 為 adt 8.0.0.zip。而且android sdk還包含sdk tools和sdk platform兩個東西,它們的意義也不同,它們也...