TeamCity[下文簡稱TC]是JetBrains旗下的一款持續集成[Continuous Integration,簡稱CI]工具,開箱即用。mysql
聲明:本系列全部內容針對Jdk1.8環境。git
首先明確一個概念,什麼是CI,CI要達到什麼目的?簡單來講,CI是一種軟件開發實踐,在軟件項目團隊中,天天均可能會有不一樣的開發人員提交代碼,共享代碼庫中的代碼是否時刻保持可運行狀態,不得而知。那麼,在開發進程中,持續的構建部署共享代碼庫,就能及時測試代碼的可運行時態,及早發現問題並解決。web
因而可知,在團隊項目中,CI已是必不可少的一環。sql
業界的CI工具也有不少,五花齊放,各顯神通,如流行的開源工具Jenkins,以及CircleCI、GitLab CI等,本文不討論各CI工具的優劣,聚焦TC的使用介紹。數據庫
TC是一款功能強大且用戶用好的CI工具,具備如下主要功能:windows
1) 在不一樣平臺和環境中同時運行並行構建後端
2) 優化代碼集成周期並確保永遠不會在存儲庫中得到損壞的代碼centos
3) 經過智能測試從新排序查看即時測試結果報告瀏覽器
4) 支持Java和.net:爲Java和.NET運行代碼覆蓋和重複查找器bash
5) 自定義構建持續時間,成功率,代碼質量和自定義指標的統計信息
請確保系統中已經安裝了maven和git軟件,並正確配置了環境變量。這很重要。
1)下載exe安裝程序:http://www.jetbrains.com/teamcity/download/
2)選擇安裝的功能組件:
Build Agent:構建代理,實際代碼集成構建的載體,默認和TC服務Server安裝在同一臺服務器上。TC支持多構建代理,TC Server能夠鏈接不一樣服務器上的多個不一樣構建代理,協同工做。因爲當前是在演練環境,請勾選。
Server:TC服務,主要承載TC的核心服務和web界面,請勾選。
同時,勾選Windows Service,安裝windows服務。
3)選擇端口
默認端口是80,建議修改爲8111:
4)配置Build Agent的屬性:
如上圖可知:TC服務的web地址是http://localhost:8111,同時構建代理對TC服務的監聽端口是9090,以及代理所在的目錄是C:\Softapp\JetBrains\TeamCity2\buildAgent,即在TC的安裝目錄下:
5)選擇經過系統帳號運行TC服務和Build Agent代理服務
6)開啓服務
也能夠經過windows services管理面板手動管理。
確保已經安裝了git和maven,並配置好了系統環境變量,這很重要。
1)下載tar.gz安裝程序:http://www.jetbrains.com/teamcity/download/,並將安裝包傳送至centos系統,如拷貝至/data/software/目錄中:
下面安裝2018.1.2版本:
2)解壓2018.1.2版本:
tar -xzvf /data/software/TeamCity-2018.1.2.tar.gz
生成TeamCity目錄,打開目錄,內容以下:
見上圖:
bin:存放TC的可執行文件,如runAll.sh、startup.sh、shutdown.sh、teamcity-server.sh等;
buildAgent:默認構建代理目錄,存放構建代理的文件以及執行信息;
conf:TC配置文件目錄,如server.xml,能夠更換TC的服務端口;
licenses:存放TC的憑證文件等;
logs:存放執行日誌文件;
3)啓動服務
runAll.sh腳本能夠同時啓動TC server和Build Agent;若是Build Agent須要單獨啓動的話,能夠執行teamcity-server.sh單純啓動TC server,啓停的命令以下:(後臺執行)
建議此處使用runAll.sh腳本。
在web瀏覽器中打開:http://localhost:8111,若是是遠程centos服務器,首先開通8111防火牆,經過地址:http://[centos服務器ip]:8111訪問。
1)配置TC數據存儲目錄Data Directory:
默認便可,點擊Proceed。
2)配置數據庫
TeamCity能夠在SQL數據庫中存儲構建歷史記錄,用戶,構建結果和一些運行時數據,以便後續問題排查。
其中,包括HSQLDB內置數據庫以及其餘可持久化到硬盤的數據庫,如mysql等。
HSQLDB是默認的內置數據庫,但不建議使用,摘錄TC官網所言:
在第一次TeamCity運行時,默認狀況下建議使用基於HSQLDB數據庫引擎的內部數據庫。內部數據庫僅適用於評估目的;它開箱即用,無需額外設置。
可是,咱們強烈建議在生產環境中使用外部數據庫做爲後端TeamCity數據庫。
外部數據庫一般更可靠並提供更好的性能:內部數據庫可能崩潰並丟失全部數據(例如,在「磁盤空間不足」狀況下)。
此外,內部數據庫在大型數據集(例如,超過200Mb的數據庫存儲文件)上可能變得很是慢。
另請注意,若是您使用內部數據庫,咱們的支持不會涵蓋任何性能或數據庫數據丟失問題。
簡而言之,不要將內部HSQLDB數據庫用於生產TeamCity實例。複製代碼
咱們選擇MySQL數據庫:
須要拷貝一個mysql jabc鏈接的jar到數據目錄的lib/jabc目錄下,或者選擇在線下載。
而後再建立一個空數據庫,執行以下命令:
create database <database-name> collate utf8_bin; create user <user-name> identified by '<password>'; grant all privileges on <database-name>.* to <user-name>; grant process on *.* to <user-name>;複製代碼
而後在上圖中填入數據庫的鏈接信息,點擊Proceed。
注意:必須新建一個空數據庫並賦權,不然可能出現以下錯誤:
Found a TeamCity schema when expected an empty database複製代碼
3)最後一步:建立TC的全部者帳戶信息
輸入用戶名和密碼後,點擊Create ccount,完成TC的配置。
好了,本文就到這裏,下一篇講講TC的基本使用。