您现在的位置是:首页 > cms教程 > Discuz教程Discuz教程
Discuz的NT持续集成实战
以山2025-06-24Discuz教程已有人查阅
导读从SVN中取出源代码到e:\source,编译后发布项目到e:\publish,可直接在IIS中运行。编译状态发送email通知相关人员。软件环境:(以下软件的安装过程非常简单,基本上一路Next就可以了。)
CruiseControl.net持续集成(ContinuousIntegration)每日构建(DailyBuild)Discuz!NTSVN
操作系统:win2003
版本控制:Subversion
程序编译:MSBuild
代码规范检查:Fxcop
目标:从SVN中取出源代码到e:\source,编译后发布项目到e:\publish,可直接在IIS中运行。编译状态发送email通知相关人员。软件环境:(以下软件的安装过程非常简单,基本上一路Next就可以了。)
CruiseControl.net
下载:ccnet.thoughtworks.com
安装目录:c:\C:\ProgramFiles\
Fxcop
下载:http://.microsoft.com/downloads/details.aspx?FamilyID=3389f7e4-0e55-4a4d-bc74-4aeabb17997b&DisplayLang=en
安装目录:c:\ProgramFiles\MicrosoftFxCop1.36
Subversion(SVN)下载:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
安装目录:c:\ProgramFiles\
环境配置主要的配置文件有三个分别是:配置文件说明文件位置生成方式
ccnet.config配置CruiseControl.net已经存在
DailyBuild.msbuild配置MSBuild编译目标项目手动生成
DiscuzNT.DailyBuild.FxCop配置Fxcop的检查目标E:\DailyBuild\DiscuzNT.DailyBuild.FxCopFxcop工具生成
publish.bat用户发布的批处理手动生成
filelist.txt对publish.bat的配置手动生成
配置CruiseControl.net(编辑CruiseControl.net的配置文件ccnet.config,其内容如下)
FxCop的配置文件DiscuzNT.DailyBuild.FxCop可以通过FxCop的GUI工具生成,保存到E:\DailyBuild目录下。主要是选择检查目标然后选择配置文件保存位置,这个在此不详述。
编写发布批处理publish.bat内容如下:
因此,本来我只是想不复制.cs文件,可是却连.css文件也不复制了。为了解决这个问题.cs后面需要一个"\"。
常见问题
编译成功能收到email通知,可是编译失败时却没有email通知
答:这个常见问题是因为把<email>配置节写在了<tasks>配置节里面,这样当编译失败时,流程从<tasks>中跳出,导致后面的<email>根本没有执行,解决方法就是把<email>放到<publishers>下。
生成的日志文件过大,在浏览器中查看buildreport的时候,浏览器就死掉了
答:注意MSBuild的编译参数<buildArgs>DailyBuild.msbuild/p:Configuration=Debug/v:q</buildArgs>其中/v:q指定了输出日志的级别,自己查看一下MSBuild的/v参数的说明就明白了。
后记:有了DailyBuild,我们可以在开发人员提交修改后,立刻生成一个可测试版本发布到IIS中,然后展示给用户看也好,开展黑盒测试也好,都非常方便,而且使用CruiseControl.net可以把单元测试也加入进来,这样每次编译后,自动生成单元测试报告,编码规范报告,真的是非常的方便。
操作系统:win2003
版本控制:Subversion
程序编译:MSBuild
代码规范检查:Fxcop
目标:从SVN中取出源代码到e:\source,编译后发布项目到e:\publish,可直接在IIS中运行。编译状态发送email通知相关人员。软件环境:(以下软件的安装过程非常简单,基本上一路Next就可以了。)
CruiseControl.net
下载:ccnet.thoughtworks.com
安装目录:c:\C:\ProgramFiles\
Fxcop
下载:http://.microsoft.com/downloads/details.aspx?FamilyID=3389f7e4-0e55-4a4d-bc74-4aeabb17997b&DisplayLang=en
安装目录:c:\ProgramFiles\MicrosoftFxCop1.36
Subversion(SVN)下载:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
安装目录:c:\ProgramFiles\
环境配置主要的配置文件有三个分别是:配置文件说明文件位置生成方式
ccnet.config配置CruiseControl.net已经存在
DailyBuild.msbuild配置MSBuild编译目标项目手动生成
DiscuzNT.DailyBuild.FxCop配置Fxcop的检查目标E:\DailyBuild\DiscuzNT.DailyBuild.FxCopFxcop工具生成
publish.bat用户发布的批处理手动生成
filelist.txt对publish.bat的配置手动生成
配置CruiseControl.net(编辑CruiseControl.net的配置文件ccnet.config,其内容如下)
<cruisecontrol>
<project name="Discuz!NT3" webURL="http://10.0.3.4/ccnet/server/local/project/Discuz!NT3/ViewLatestBuildReport.aspx">
<workingDirectory >e:\source</workingDirectory>
<artifactDirectory>E:\DailyBuild\Log\3</artifactDirectory> <!-- 编译日志生成路径 -->
<labeller type="dateLabeller"></labeller>
<sourcecontrol type="svn"> <!-- 版本控制系统的类型 -->
<trunkUrl>https://code.comsenz.com/</trunkUrl> <!-- SVN的地址 -->
<workingDirectory>e:\source</workingDirectory> <!-- 把源代码检出到该目录 -->
<executable>c:\Program Files\Subversion\bin\svn.exe</executable> <!-- svn.exe所在路径 -->
<username>svnuser</username> <!-- 登录svn的用户名和密码 -->
<password>123</password>
</sourcecontrol>
<tasks>
<exec>
<executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable> <!-- MSBuild.exe 文件所在路径 -->
<baseDirectory>e:\source</baseDirectory> <!-- 对 e:\source 目录下的内容进行编译,实际上是解决方案文件或者msbuild文件所在目录-->
<buildArgs>DailyBuild.msbuild /p:Configuration=Debug /v:q</buildArgs> <!-- 编译参数 不懂的查MSBuild的帮助 -->
<buildTimeoutSeconds>1200</buildTimeoutSeconds> <!-- 编译超时时间 -->
</exec >
<exec executable="E:\DailyBuild\publish.bat"/> <!-- 编译后执行的批处理文件路径,该批处理文件用于项目发布 -->
<merge> <!-- 此节用于合并Fxcop生成的日志 到 编译日志里,最终作为Build Report -->
<files>
<file>E:\DailyBuild\log\3\DailyBuild.FxCop.xml</file> <!-- 该文件的名字是在 publish.bat 中 FxCopCmd命令的参数中指定的 -->
</files>
</merge>
</tasks>
<publishers>
<xmllogger logDir="E:\DailyBuild\Log\3\buildlogs" /> <!-- 编译日志存放路径 -->
<!-- 下面设置编译报告通过email通知相关人员 详细信息参考cc.net的帮助-->
<email from="admin@163.com" mailhost="smtp.163.com" mailhostUsername="admin" mailhostPassword="123" includeDetails="true">
<users>
<user name="dachuan" group="buildmaster" address="dachuan@163.com"/>
</users>
<groups>
<group name="buildmaster" notification="always"/>
</groups>
</email>
</publishers>
<triggers> <!-- 该触发器控制周一到周五的23点到0点的时间段内进行编译,每900秒检查一次svn有无更新 ,如果有就取出并编译-->
<filterTrigger startTime="08:00" endTime="23:00">
<trigger type="filterTrigger" startTime="23:00:00" endTime="23:59:59">
<trigger type="intervalTrigger" name="continuous" seconds="900" />
<weekDays>
<weekDay>Saturday</weekDay>
<weekDay>Sunday</weekDay>
</weekDays>
</trigger>
</filterTrigger>
</triggers>
</project>
</cruisecontrol>
配置MSBuild(将MSBuild的配置文件DailyBuild.msbuild放到和VS解决方案文件同级目录中,其内容如下)
<!-- 该文件与VS解决方案文件在同一目录 --> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Target Name="Build"> <MSBuild Projects="Discuz_vs08.sln" Targets="Clean;Rebuild"/> </Target> </Project>
配置DiscuzNT.DailyBuild.FxCopFxCop的配置文件DiscuzNT.DailyBuild.FxCop可以通过FxCop的GUI工具生成,保存到E:\DailyBuild目录下。主要是选择检查目标然后选择配置文件保存位置,这个在此不详述。
编写发布批处理publish.bat内容如下:
xcopy e:\source e:\publish /E /y /D /EXCLUDE:E:\DailyBuild\filelist.txt
cd c:\Program Files\Microsoft FxCop 1.36
c:
FxCopCmd /project:E:\DailyBuild\DiscuzNT.DailyBuild.FxCop /out:E:\DailyBuild\log\3\DailyBuild.FxCop.xml
其中xcopy的参数/D指定了不复制修改日期相同的文件,这样就只把原时间比目标文件新的文件复制过来,减少了复制压力。/EXCLUDE参数中指定的filelist.txt文件中记录的是不需要复制的目录或文件,具体用法网上有很多资料。其内容如下:
.cs\
\_svn
\.svn
.csproj\
.sln\
.pdb\
.bat\
filelist.txt
.bak\
.user\
obj\
dnt.config\
其中有个技巧,例如.cs\这个包含一个"\",如果不写这个"\",那么所要文件名中包含"cs"的文件都不会被复制,因此,本来我只是想不复制.cs文件,可是却连.css文件也不复制了。为了解决这个问题.cs后面需要一个"\"。
常见问题
编译成功能收到email通知,可是编译失败时却没有email通知
答:这个常见问题是因为把<email>配置节写在了<tasks>配置节里面,这样当编译失败时,流程从<tasks>中跳出,导致后面的<email>根本没有执行,解决方法就是把<email>放到<publishers>下。
生成的日志文件过大,在浏览器中查看buildreport的时候,浏览器就死掉了
答:注意MSBuild的编译参数<buildArgs>DailyBuild.msbuild/p:Configuration=Debug/v:q</buildArgs>其中/v:q指定了输出日志的级别,自己查看一下MSBuild的/v参数的说明就明白了。
后记:有了DailyBuild,我们可以在开发人员提交修改后,立刻生成一个可测试版本发布到IIS中,然后展示给用户看也好,开展黑盒测试也好,都非常方便,而且使用CruiseControl.net可以把单元测试也加入进来,这样每次编译后,自动生成单元测试报告,编码规范报告,真的是非常的方便。
本文标签:
很赞哦! ()
相关教程
图文教程
不同版本MySQL数据库与Discuz安装兼容性
在当今互联网时代,搭建一个论坛平台不仅仅是技术的展示,更是社区运营的核心。Discuz作为一个广受欢迎的开源论坛系统,其与MySQL数据库的兼容性问题常常成为用户关注的焦点。
PHPWIND和DISCUZ有哪些区别
大家都知道,phpwind和discuz是两款用来做论坛的强大的php开源程序。客观的说,现在phpwind和discuz各有所长,要说他们哪个比较好,也是很难的事情
安装Discuz论坛时提示“mysqli_connect()不支持advice_mysqli
安装Discuz!论坛时提示“不支持Mysql数据库,无法安装论坛”的解决方法1,在系统的 system32(C:\windows\system32)目录下缺少libmysql.dll文件,解决方法是找到php目录下的libmysql.dll
discuz实现自动注册登录的方法
1.从原有系统进入论坛自动登录和注册2.实现弹框在本页面,不进行跳转3.js在页面加载时直接发起注册请求这个功能之前使用的uc_user_register这个函数来处理的,但是今天在开发用户空间时就会出现问题。
相关源码
-
帝国cms7.5游戏门户H5小游戏网站模板源码免费下载基于帝国CMS7.5开发的H5游戏门户模板,为在线游戏平台设计。支持PC端与移动端同步生成,打造完整的游戏娱乐体验平台。查看源码 -
自适应车行汽车租赁二手车行业企业网站模板为汽车租赁与二手车交易场景深度优化,采用PbootCMS内核开发,聚焦车辆展示、租赁流程与服务介绍三大核心模块。响应式布局确保PC与移动端数据实时同步,后台一键管理车辆信息查看源码 -
(自适应)绿色新闻生活百科资讯文章博客类网站pbootcms模板源码本模板基于PbootCMS开发,为生活百科、资讯文章和博客类网站设计。采用清新绿色系风格,提供舒适的阅读体验,同时适配PC和移动设备。适用于生活技巧分享、健康知识传播查看源码 -
pbootcms模板(自适应)花店鲜花花卉园艺网站源码一款基于PbootCMS内核开发的花店鲜花配送与花卉园艺企业网站模板。该模板采用响应式设计,自动适配手机、平板等移动设备,确保用户在任何设备上都能获得优质浏览体验。查看源码 -
(自适应响应式)法律咨询律师事务所法务pbootcms源码下载为律师事务所、法律咨询机构设计,特别适合展示法律服务、律师团队和成功案例。采用响应式技术,确保在不同设备上都能提供专业的法律信息展示和咨询服务。查看源码 -
(自适应html5)重工业钢铁机械设备网站pbootcms响应式模板下载为重工业领域打造的响应式网站模板,助力企业高效展示产品与服务,基于PbootCMS开发的工业级网站模板,特别适合钢铁制造、机械设备生产等重工业企业使用。查看源码
| 分享笔记 (共有 篇笔记) |
