持續集成:TeamCity 的安裝和使用

持續集成:TeamCity 的安裝和使用

Sourcehtml

  • TeamCitylinux

本文初衷

  • 讓你們瞭解持續集成(CI),以及入門瞭解 JetBrains 家的 TeamCity 的一些簡單實用。
  • TeamCity 的一些複雜使用我暫時也不會,同樣也是要看文檔的,因此無論怎樣你都要養成看官網文檔的習慣。
  • TeamCity 和 Jenkins、Hudson 實際上是很是同樣的,基本流程都是差很少的,因此若是你會其餘的幾個 CI 工具的話,學習起來很快。
  • Docker 已經開始在引入到 CI、CD(持續交付)過程當中,能夠大大簡化總體的過程,也許這是將來的一個方向,有興趣的能夠了解更多。

它是什麼

爲何會出現

哪些人喜歡它

哪些人不喜歡它

  • Google 不到結果,應該是沒人不喜歡,只是有些人用不慣

爲何學習它

  • 更好地保證項目質量

同類工具

TeamCity 入門

TeamCity 安裝部署(Linux 環境)

  • 在我講以前,若是你英文還能夠,就到官網這裏看下:
  • Installation Quick Start
  • 安裝環境要求:
    • JDK 1.7 以上,若是你要使用的是 2016 最新的 TeamCity 9.1 的話,JDK 官網推薦的 1.8
  • 安裝包下載:https://www.jetbrains.com/teamcity/download/#section=linux-version
  • 開始安裝(eg:TeamCity-9.1.6.tar.gz):
    • 解壓壓縮包(解壓速度有點慢):tar zxf TeamCity-9.1.6.tar.gz
    • 解壓完的目錄結構講解:https://confluence.jetbrains.com/display/TCD9/TeamCity+Home+Directory
    • 下載的 tar.gz 的本質是已經裏面捆綁了一個 Tomcat,因此若是你會 Tomcat 的話,有些東西你能夠本身改的。
    • 按我我的習慣,把解壓縮的目錄放在 usr 目錄下:mv TeamCity/ /usr/program/
    • 進入解壓目錄:cd /usr/program/TeamCity/
    • 啓動程序:/usr/program/TeamCity/bin/runAll.sh start
    • 中止程序:/usr/program/TeamCity/bin/runAll.sh stop
    • 啓動須要點時間,最好能給它一兩分鐘吧

首次進入

  • 假設咱們已經啓動了 TeamCity
  • 訪問(TeamCity 默認端口是:8111):http://192.168.1.113:8111/
  • 若是訪問不了,請先關閉防火牆:service iptables stop
  • 你也能夠選擇把端口加入白名單中:
    • sudo iptables -I INPUT -p tcp -m tcp --dport 8111 -j ACCEPT
    • sudo /etc/rc.d/init.d/iptables save
    • sudo service iptables restart
  • 若是你要改變端口,找到下面這個 8111 位置:vim /usr/program/TeamCity/conf/server.xmlweb

    <Connector port="8111" ...數據庫

  • 在假設你已經能夠訪問的狀況,咱們開始進入 TeamCity 的設置嚮導:
  • TeamCity 嚮導apache

  • TeamCity 嚮導vim

    • 如上圖英文所示,TeamCity 的一些構建歷史、用戶信息、構建結果等這類數據是須要放在關係型數據庫上的,而默認它給咱們內置了一個。
    • 若是你要了解更多 TeamCity External Database,你能夠看:https://confluence.jetbrains.com/display/TCD9/Setting+up+an+External+Database
    • 首次使用,官網是建議使用默認的:Internal(HSQLDB),這樣咱們無需在一開始使用的就考慮數據庫遷移或安裝的問題,咱們只要好好感覺 TeamCity 給咱們的,等咱們決定要使用了,後續再更換數據也是能夠的。可是內置的有一個注意點:'TeamCity with the native MSSQL external database driver is not compatible with Oracle Java 6 Update 29, due to a bug in Java itself. You can use earlier or later versions of Oracle Java.'
    • 假設咱們就選 Internal(HSQLDB) ,則在建立初始化數據庫的過程稍微須要點時間,我這邊是幾分鐘。
  • TeamCity 嚮導c#

    • 如上圖所示,接受下協議
  • TeamCity 嚮導服務器

    • 如上圖所示,咱們要建立一個頂級管理員帳號,我我的習慣測試的帳號是:admin123456
  • TeamCity 嚮導網絡

項目的構建、管理

  • 建議能夠看下官網:https://confluence.jetbrains.com/display/TCD9/Configure+and+Run+Your+First+Build
  • 如今讓咱們開始建立一個項目進行構建
  • 項目管理地址:http://192.168.1.113:8111/admin/admin.html?item=projects
  • 假設我如今有一個項目的結構是這樣的:

    • Youshop-Parent,輸出是 pom
      • Youshop-manage,輸出是 pom
        • Youshop-pojo,輸出 jar
  • 咱們如今以 Youshop-pojo 爲例,讓它自動構建併發布到 Nexus 中,其餘項目道理是同樣的,這裏就很少說。
  • TeamCity 嚮導
  • 如上圖,因爲目前只要是公司的項目都應該是在版本控制的,因此這裏咱們選擇:Create project from URL
  • TeamCity 嚮導
  • 如上圖,咱們能夠看出 TeamCity 也支持 HTTP、SVN、Git 等連接方式。
  • TeamCity 嚮導
  • 輸入你項目託管商的帳號密碼,我這裏用的是 oschina 的。
  • TeamCity 嚮導
  • 帳號、密碼驗證經過,如今能夠給這個項目配置一個項目基本信息。
  • TeamCity 嚮導
  • 在從版本控制中下載文件和掃描文件
  • TeamCity 嚮導
  • TeamCity 自動掃描到我是用 Maven 構建的項目,因此把 POM 文件找出來了,若是你一個項目有多種構建方式,有對應的配置文件的話,這裏都會顯示出來的。
  • 咱們勾選 Maven 前面的複選框,點擊:Use Selected
  • TeamCity 嚮導
  • 因爲咱們的目標是構建完自動發佈到 Nexus,因此咱們的 Maven Goals 應該是:clean install deploy,這裏咱們應該點擊:Edit,進行編輯。
  • 若是你不懂 Maven Goals,那你須要學習下,這個很重要。

  • TeamCity 嚮導

    • 如上圖,這臺服務器必須裝有 Maven、JDK
    • 如上圖,Goals 咱們的目標是 clean install deploy
    • 如上圖,Maven Home 我建議是本身自定義路徑,這樣確定不會有問題。因此你服務器上的 Maven 安裝路徑是什麼你就在這裏填寫上去。Maven 目前支持的最高版本是:3.2.5
    • 如上圖,Java Parameters 我建議也是本身自定義路徑,別選擇其餘選項。
  • TeamCity 嚮導

    • 如上圖,點擊 run,開始手動構建該項目
  • TeamCity 嚮導

    • 如上圖,咱們看到簡略的構建日誌
  • TeamCity 嚮導
  • TeamCity 嚮導

    • 如上 2 張圖,咱們看到詳細的構建內容
  • TeamCity 嚮導

    • 如上圖,當咱們版本控制中有提交的時候,TeamCity 會識別到記錄
  • TeamCity 嚮導

    • 如上圖,咱們能夠看到提交的 Commit Message 信息。
    • 如上圖,右邊紅圈的三個按鈕是用來處理此次提交的,經常使用的是第一次按鈕,點擊對這次版本進行構建
  • TeamCity 嚮導

    • 如上圖,若是你要看全部的提交記錄,能夠在 Change Log 看到而且指定版本構建
  • TeamCity 嚮導

    • 如上圖,若是在你不想要這個項目的時候能夠進行刪除
  • TeamCity 嚮導

    • 如上圖,由於 Goals 裏面有 deploy 命令,因此構建完成會發布到 Nexus 中,這樣團隊的人就能夠用到最新的代碼了
  • TeamCity 嚮導

    • 如上 gif 圖演示,項目常去的幾個配置地方就是這樣些了

配置自動構建觸發行爲

  • 官網提供的觸發行爲有:https://confluence.jetbrains.com/display/TCD9/Configuring+Build+Triggers
  • 下面咱們舉例說常見的:VCS TriggerSchedule Trigger
  • TeamCity 嚮導

    • 如上圖,點擊 Add new trigger 添加觸發器
  • TeamCity 嚮導

    • 如上圖,常見的觸發器就這些了
  • TeamCity 嚮導

    • 如上圖,配置好 VCS Trigger 效果是,當咱們有代碼提交的時候,TeamCity 檢查到新版本以後自動構建,這個最經常使用
  • TeamCity 嚮導

    • 如上圖,Schedule Trigger 的做用就是定時構建,除了經常使用的幾個輸入框設置定時外,TeamCity 還可使用 Cron 語法進行設置
    • TeamCity 採用的 Cron 語法是 Quartz,具體你能夠看:Quartz CronTrigger Tutorial
    • 若是你不懂 Cron 語法那就算了,可是我想作 Java 這個應該要會的

集成 IntelliJ IDEA

  • 安裝 IntelliJ IDEA:https://confluence.jetbrains.com/display/TCD9/IntelliJ+Platform+Plugin
  • TeamCity 嚮導

    • 如上圖,咱們能夠直接連上 TeamCity 服務器,這裏的用戶名密碼是 TeamCity 的帳號系統。
  • TeamCity 嚮導

    • 如上圖,連上去的效果是這裏會打鉤
  • TeamCity 嚮導

    • 如上圖,咱們能夠直接把別人提交的內容作 patch 直接用 IntelliJ IDEA 進行整合
    • 還有其餘不少結合玩法你們能夠本身去嘗試下

其餘

原文出處:簡書

相關文章
相關標籤/搜索