本文初衷
- 讓大家了解持續(xù)集成(CI),以及入門(mén)了解 JetBrains 家的 TeamCity 的一些簡(jiǎn)單實(shí)用。
- TeamCity 的一些復(fù)雜使用我暫時(shí)也不會(huì),一樣也是要看文檔的,所以不管怎樣你都要養(yǎng)成看官網(wǎng)文檔的習(xí)慣。
- TeamCity 和 Jenkins、Hudson 其實(shí)是非常一樣的,基本流程都是差不多的,所以如果你會(huì)其他的幾個(gè) CI 工具的話,學(xué)習(xí)起來(lái)很快。
- Docker 已經(jīng)開(kāi)始在引入到 CI、CD(持續(xù)交付)過(guò)程中,可以大大簡(jiǎn)化整體的過(guò)程,也許這是未來(lái)的一個(gè)方向,有興趣的可以了解更多。
它是什么
為什么會(huì)出現(xiàn)
哪些人喜歡它
哪些人不喜歡它
- Google 不到結(jié)果,應(yīng)該是沒(méi)人不喜歡,只是有些人用不慣
為什么學(xué)習(xí)它
同類工具
TeamCity 入門(mén)
TeamCity 安裝部署(Linux 環(huán)境)
首次進(jìn)入
- 假設(shè)我們已經(jīng)啟動(dòng)了 TeamCity
- 訪問(wèn)(TeamCity 默認(rèn)端口是:8111):http://192.168.1.113:8111/
- 如果訪問(wèn)不了,請(qǐng)先關(guān)閉防火墻:
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
- 如果你要改變端口,找到下面這個(gè) 8111 位置:
vim /usr/program/TeamCity/conf/server.xml
<Connector port="8111" ...
- 在假設(shè)你已經(jīng)可以訪問(wèn)的情況,我們開(kāi)始進(jìn)入 TeamCity 的設(shè)置向?qū)В?/li>
- https://confluence.jetbrains.com/display/TCD9/TeamCity+Data+Directory
https://confluence.jetbrains.com/display/TCD9/Setting+up+an+External+Database
首次使用,官網(wǎng)是建議使用默認(rèn)的:Internal(HSQLDB)
,這樣我們無(wú)需在一開(kāi)始使用的就考慮數(shù)據(jù)庫(kù)遷移或安裝的問(wèn)題,我們只要好好感受 TeamCity 給我們的,等我們決定要使用了,后續(xù)再更換數(shù)據(jù)也是可以的。但是內(nèi)置的有一個(gè)注意點(diǎn):'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.'
假設(shè)我們就選 Internal(HSQLDB)
,則在創(chuàng)建初始化數(shù)據(jù)庫(kù)的過(guò)程稍微需要點(diǎn)時(shí)間,我這邊是幾分鐘。
http://192.168.1.113:8111/profile.html?tab=userGeneralSettings
我們可以完善一些管理員信息和基礎(chǔ)配置信息,這些配置不配置都無(wú)所謂了,只是完善了可以更加好用而已
如果你有 SMTP 的郵箱,你可以來(lái)這里開(kāi)啟郵件通知功能:http://192.168.1.113:8111/admin/admin.html?item=email
如果你要開(kāi)啟通知功能那肯定下一步就是考慮通知內(nèi)容的模板要如何設(shè)定:https://confluence.jetbrains.com/display/TCD9//Customizing+Notifications
模板存放路徑在:/root/.BuildServer/config/_notifications
,用的是 FreeMarker 的語(yǔ)法
項(xiàng)目的構(gòu)建、管理
http://archive.apache.org/dist/maven/maven-3/3.2.5/binaries/
如上圖,Java Parameters
我建議也是自己自定義路徑,別選擇其他選項(xiàng)。
https://confluence.jetbrains.com/display/TCD9/Configuring+Build+Triggers
下面我們舉例說(shuō)常見(jiàn)的:VCS Trigger
、Schedule Trigger
Quartz CronTrigger Tutorial
如果你不懂 Cron 語(yǔ)法那就算了,但是我想做 Java 這個(gè)應(yīng)該要會(huì)的
集成 IntelliJ IDEA