TeamCity安裝和配置


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工具集成、各種消息通知、各種報表、項目的管理、分布式的編譯等等,所有的這些,都是 讓你的團隊快速享有持續繼承帶來的效率提升、高質量的軟件保障。

環境

  1. JDK 1.8
  2. Maven 3.6
  3. TeamCity 2019.1.5
  4. SpringBoot 2.1.4.RELEASE
  5. Ubuntu 16.04
  6. 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

點擊查看更多 TeamCity Data Directory 目錄

配置1

2.TeamCity將構建歷史記錄,用戶,構建結果和一些運行時數據存儲在SQL數據庫中。官網建議在首次使用的時候選擇默認的:Internal(HSQLDB),但是,在生產環境中強烈建議將外部數據庫用作后端TeamCity數據庫。在本文中我們選擇默認的:Internal(HSQLDB),然后進入漫長的等待。

點擊查看更多 TeamCity External Database 配置

配置2

3.等待構建初始化

配置loading

4.創建一個超級管理員用戶(此步驟忘記截圖,此圖片來源網絡)

此圖片來源網絡

5.本文跳過了完善基礎信息步驟,如有需要,可自行百度

項目構建

項目可參考TeamCity測試項目

我們以此項目為例,將其通過TeamCity管理,實現自動構建並發布到本服務器上。

1.點擊選擇Project --> Create Project

構建項目1

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> 選擇本地安裝的JDK

  • JDK home path: /usr/local/jdk8` 本地JDK安裝目錄位置

7.通過以上配置,已經完成通過TeamCity自動將項目獲取並編譯打包。點擊Add build step,添加命令實現將項目自動運行。

8.選擇Command LineStep 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(待更新......)

結束語

本人已開通公眾號,歡迎大家前來灌水

公眾號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM