Github和TeamCity的持续集成构建

一、简介

TeamCity是JetBrains旗下的一款持续集成[Continuous Integration,简称CI]工具,开箱即用。TeamCity提供一系列特性可以让团队快速实现持续集成:IDE工具集成、各种消息通知、各种报表、项目的管理、分布式的编译等等。

二、安装使用(Linux)

1、安装jdk

yum -y install java-1.8.0-openjdk-devel.x86_64

2、下载Teamcity安装包

https://www.jetbrains.com/teamcity/download/

3、解压(建议解压到/usr/loacl/)

tar -zxvf TeamCity-2023.11.3.tar.gz -C /usr/local/

4、启动

/usr/local/Teamcity/bin/runAll start

5、登录(http://ip:8111

PS:首次登录需要创建管理员账户,以及输入外部数据库(可以使用内部数据库)的信息。

三、与Github的集成构建

1、建立Github连接

(1)在主页面点击左上角Projects旁边的加号

(2)点击左上角的Root Project进入到根项目的配置页面,找到Connections设置,进入后选择Add Connection,这里我是跟GitHub网站连接的所以我选择GitHub.com

(3)登录上GitHub的官网并点击头像选择Settings,找到最下方的Developer settings,选择OAuth Apps,点击新建OAuth Apps,填写相关信息,其中Homepage URL和Authorization在Teamcity上的连接GitHub界面有显示可直接复制粘贴,Enable Device Flow也要勾选上,最后点击Register application便可创建。

(4)进入到你创建OAuth Apps中,选择Generate a new client secret授权生成新的密钥,复制密钥保存起来(只显示这一次),进入到Teamciy把Client ID和Client secret粘贴进去,保存即可。

2、创建项目

回到创建项目界面,在Repository URL中有GitHub的小图标点击后登录授权即可显示GitHub里面的存储库,选择对应的存储库,直接点击继续即可。

3、添加构建

进入到Build的配置页面(在项目下的Build中右上角的Edit configuration),找到Build Step,选择添加Build,这里我是选择Maven,在Goals中填写构建命令如clean package,Additional Maven command line parameters中填写Maven的其他参数如-Dmaven.test.failure.ignore=true(忽略测试失败,继续执行构建),选择maven和java的版本号,点击保存即可。

4、添加触发器

(1)在部署的Build配置页面选择Triggers,点击添加Add new trigger,选择VCS Trigger,勾选上 Queued build can be replaced with a more recent build(构建时有新的更改则构建新版本),其中Trigger rules可添加触发规则"-"开头是此更改不可以触发,"+"开头为可以触发,默认不写则全部可以触发,最后点击创建即可。

(2)测试:更改GitHub的代码查看是否自动触发构建。

相关推荐
逛逛GitHub7 小时前
断网也能跑的小龙虾,EdgeClaw 在 GitHub 上开源了。
github
Uncertainty!!8 小时前
将docker镜像上传到github镜像存储仓库(GitHub 容器仓库(GHCR)使用流程)
docker·容器·github
赵文宇(温玉)10 小时前
Openclaw-In-Docker新版本发布,更轻、更快、更健壮,1600+次下载,30+Github关注
docker·容器·github·小龙虾·clawclaw
CoderJia程序员甲10 小时前
GitHub 热榜项目 - 日榜(2026-03-23)
ai·大模型·llm·github·ai教程
badhope10 小时前
Docker入门到实战全攻略
linux·python·docker·github·matplotlib
没有bug.的程序员12 小时前
CI/CD 流水线的物理级崩塌:Spring Boot 镜像从 1.2G 暴降至 200M 的 Docker 底层大重构
java·spring boot·ci/cd·docker·重构
用户97514707513612 小时前
双向绑定VUE,单向绑定react区别
github
虎头金猫13 小时前
小米摄像头本地化存储教程:Go2RTC+EasyNVR 搭建私有监控系统
langchain·开源·github·aigc·智能家居·开源软件·ai编程
用户97514707513613 小时前
在 Vite 中配置 CSS 模块时,如何处理不同 CSS 模块之间的冲突?
github
九天轩辕13 小时前
Android CI/CD 编译 AIDL 报错分析与解决
android·java·ci/cd