TeamCity安裝和配置
前言
持續集成(CI)
TeamCity是JetBrains旗下的一款持續集成[Continuous Integration,簡稱CI]工具,開箱即用。學習TeamCity之前首先需要明確一個概念,什么是持續集成(CI)?
持續集成(CI)是一種軟件開發實踐,即團隊開發成員經常集成他們的工作,通常每個成員每天至少集成一次,也就意味着每天可能會發生多次集成。每次集成都通過自動化的構建(包括編譯,發布,自動化測試)來驗證,從而盡早地發現集成錯誤。———《百度百科》
TeamCity
業界的CI工具已經有很多了,比如開源工具Jenkins,以及CircleCI、GitLab CI等,本文不討論各CI工具的優劣,旨在介紹TeamCity的使用方式。
TeamCity是一款功能強大的持續集成(Continue Integration)工具,包括服務器端和客戶端,目前支持Java,.Net項目開發。TeamCity提供一系列特性可以讓團隊快速實現持續繼承:IDE工具集成、各種消息通知、各種報表、項目的管理、分布式的編譯等等,所有的這些,都是 讓你的團隊快速享有持續繼承帶來的效率提升、高質量的軟件保障。
環境
- JDK 1.8
- Maven 3.6
- TeamCity 2019.1.5
- SpringBoot 2.1.4.RELEASE
- Ubuntu 16.04
- GitHub
注意:此環境為本文使用環境,各位同學可根據自己公司生產環境酌情配置。
安裝
1.Ubuntu系統下使用wget命令下載或者下載到本地之后,再拷貝到服務器上。
2.下載完成后通過tar -xvf fileName
命令,將文件解壓。
3.將解壓后的文件夾移動至/usr/local/
並重名為:TeamCity(個人習慣,以方便服務器上軟件管理,此步驟可省略),並cd到解壓后TeamCity目錄下的bin文件夾下,效果如下:
4.在此目錄下執行./runAll.sh start
以啟動TeamCity。查看進程檢查是否啟動成功。如下圖,TeamCity啟動成功,默認端口為8111
5.常用配置
如果你要改變端口,找到下面這個 8111 位置:
vim /usr/local/TeamCity/conf/server.xml
<Connector port="8111" ...
啟動程序:
/usr/local/TeamCity/bin/runAll.sh start
停止程序:
/usr/local/TeamCity/bin/runAll.sh stop
配置TeamCity
1.通過瀏覽器訪問服務器IP:TeamCity端口
,即可訪問到如下頁面。假設你已經可以訪問到這個頁面,首先配置TeamCity軟件緩存目錄,默認為/root/.BuildServer(初次使用不建議修改),點擊Proceed
2.TeamCity將構建歷史記錄,用戶,構建結果和一些運行時數據存儲在SQL數據庫中。官網建議在首次使用的時候選擇默認的:Internal(HSQLDB)
,但是,在生產環境中強烈建議將外部數據庫用作后端TeamCity數據庫。在本文中我們選擇默認的:Internal(HSQLDB)
,然后進入漫長的等待。
3.等待構建初始化
4.創建一個超級管理員用戶(此步驟忘記截圖,此圖片來源網絡)
5.本文跳過了完善基礎信息步驟,如有需要,可自行百度
項目構建
項目可參考TeamCity測試項目
我們以此項目為例,將其通過TeamCity管理,實現自動構建並發布到本服務器上。
1.點擊選擇Project
--> Create Project
2.選擇:Create project from URL,輸入項目地址和GitHub賬戶密碼
TeamCity 支持 HTTP(S)、SVN、Git 等鏈接方式。
3.賬號、密碼驗證通過之后,生成該項目的基礎信息。
項目名中有
-
生成項目名時不會帶出,需要手動添加。
4.TeamCity自動掃描到此項目是用Maven構建而成,所以把POM文件找了出來,如果你一個項目有多種構建方式,有對應的配置文件的話,這里都會顯示出來的。此處我們勾選Maven前面的復選框,點擊:Use Selected
5.由於我們的目的是構建完后將項目自動發布到該服務器,所以我們的 Maven Goals 應該是:clean install
,這里我們應該點擊:Edit
,進行編輯
6.如下
Goals:
maven install
Maven 打包命令Additional Maven command line parameters:
-Dmaven.test.skip=true
跳過單元測試Working directory:
/repo
maven下載jar包存放位置Maven:
<Custom>
選擇本地安裝的Maven
/usr/local/maven
本地maven安裝目錄位置JDK:
<Custom>
選擇本地安裝的JDKJDK home path: /usr/local/jdk8` 本地JDK安裝目錄位置
7.通過以上配置,已經完成通過TeamCity自動將項目獲取並編譯打包。點擊Add build step
,添加命令實現將項目自動運行。
8.選擇Command Line
;Step name可以不填,為此步驟的名稱;Custom Script,通過端口號將當前運行的項目停止;啟動項目
// 通過端口號將當前運行的項目停止,將此處8004換成自己的項目端口 kill -9 $(netstat -nlp | grep :8004 | awk '{print $7}' | awk -F"/" '{ print $1 }') // 啟動項目,將此處目錄換成自己實際jar包存放目錄 nohup java -jar /repo/com/wayne/wayne-teamcity/0.0.1-SNAPSHOT/wayne-teamcity-0.0.1-SNAPSHOT.jar &
9.如下圖,點擊Run
開始手動構建並運行我們的項目
10.點擊Build Log
查看構建日志
效果展示
好像看不到什么效果 o(╯□╰)o
通過以上配置,即實現了TeamCity(半)自動獲取最新代碼、構建、發版項目
TeamCity自動構建項目及集成IDEA(待更新......)
結束語
本人已開通公眾號,歡迎大家前來灌水