Continuous integration CruiseControl.NET-项目不存在
我在服务器上安装了CruiseControl.NET。我把一切都做好了。一切意味着,从SVN中提取代码,构建它,成功构建后,使用项目触发器启动项目设置,以将代码部署到开发环境中。我添加了一些内部安全设置,主要是用户组。我正在使用LDAP安全性。当我在中添加安全功能时,我对DEV服务器的自动部署停止工作。我可以强制构建项目以使其部署,但当project#1成功构建时,当部署项目的触发器启动时,我会出现以下错误(出于安全目的,我将项目名称替换为project): 2010-07-20 13:28:19354[项目:调试]从服务器检索项目状态:tcp://localhost:21234/CruiseManager.remContinuous integration CruiseControl.NET-项目不存在,continuous-integration,cruisecontrol.net,automated-tests,cruisecontrol,continuous,Continuous Integration,Cruisecontrol.net,Automated Tests,Cruisecontrol,Continuous,我在服务器上安装了CruiseControl.NET。我把一切都做好了。一切意味着,从SVN中提取代码,构建它,成功构建后,使用项目触发器启动项目设置,以将代码部署到开发环境中。我添加了一些内部安全设置,主要是用户组。我正在使用LDAP安全性。当我在中添加安全功能时,我对DEV服务器的自动部署停止工作。我可以强制构建项目以使其部署,但当project#1成功构建时,当部署项目的触发器启动时,我会出现以下错误(出于安全目的,我将项目名称替换为project): 2010-07-20 13:28:1
2010-07-20 13:28:19355[项目:错误]异常:CCNet服务器上不存在项目“PROJECT” ThoughtWorks.CruiseControl.Remote.NoSuchProjectException:CCNet服务器上不存在项目“project”。
位于ThoughtWorks.CruiseControl.Core.Triggers.ProjectTrigger.GetCurrentProjectStatus()
在ThoughtWorks.CruiseControl.Core.Triggers.ProjectTrigger.Fire()
at ThoughtWorks.CruiseControl.Core.Triggers.MultipleTrigger.Fire()
在ThoughtWorks.CruiseControl.Core.ProjectIntegrator.PollTriggers()
在ThoughtWorks.CruiseControl.Core.ProjectIntegrator.Integrate()
at ThoughtWorks.CruiseControl.Core.ProjectIntegrator.Run() 我为CruiseControl设置了一个active directory帐户,该服务在该用户帐户(具有管理员权限)下运行。通过将用户添加到CruiseControl配置的内部设置部分中的my“admin”组,我已授予CruiseControl用户对所有项目的完全访问权
关于如何使CruiseControl可以访问该项目,以便它可以看到一个执行自动部署的窗口,您有什么想法吗?这是自动部署代码,它监视web项目,一旦成功构建,它就会启动。而且,这在没有内部安全配置的情况下也可以工作:
<cb:scope ProjectName="$(projMhWebDevDeploy)">
<project name="$(projMhWebDevDeploy)" queue="Q1" queuePriority="1">
<cb:define safeProjectName="MH_Web_Dev_Branch_Deployment"/>
<cb:define projectDirectory="$(ccnetDirectory)\Projects\$(safeProjectName)"/>
<triggers>
<projectTrigger project="$(projMhWeb)">
<triggerStatus>Success</triggerStatus>
<innerTrigger type="intervalTrigger" seconds="5" buildCondition="IfModificationExists" />
</projectTrigger>
<projectTrigger project="$(projMhWeb)">
<triggerStatus>Success</triggerStatus>
<innerTrigger type="intervalTrigger" seconds="5" buildCondition="ForceBuild" />
</projectTrigger>
</triggers>
<category>DEV Deployments</category>
<webURL>$(urlCcnetDashBoard)</webURL>
<workingDirectory>$(projectDirectory)</workingDirectory>
<artifactDirectory>$(ccnetDirectory)\BuildFiles\$(safeProjectName)</artifactDirectory>
<tasks>
<!-- Deploy Code -->
<exec>
<executable>$(deployCodeBat)</executable>
<buildArgs>
$(ccnetDirectory)\Projects\MH_Web\Web
$(deployMhWebDev)
brh
</buildArgs>
<baseDirectory>$(ccnetDirectory)\BatchFiles\</baseDirectory>
</exec>
<!-- Deploy Helicon HTTPD -->
<exec>
<executable>$(deployHeliconBat)</executable>
<buildArgs>
$(ccnetDirectory)\Projects\MH_Web\Web
"$(deployHeliconDev)"
httpd.conf
</buildArgs>
<baseDirectory>$(ccnetDirectory)\BatchFiles\</baseDirectory>
</exec>
</tasks>
<publishers>
<xmllogger />
<modificationHistory onlyLogWhenChangesFound="true" />
<email mailport="25" includeDetails="true" useSSL="false" from="FROM" mailhost="SERVER">
<users>
EMAIL ADDRESSES ARE HERE
</users>
<groups>
<group name="BuildMaster">
<notifications>
<notificationType>Always</notificationType>
</notifications>
</group>
</groups>
</email>
</publishers>
<security type="defaultProjectSecurity" defaultRight="Deny">
<permissions>
<rolePermission name="Developers" ref="Developers"/>
<rolePermission name="Admin" ref="Admin"/>
</permissions>
</security>
</project>
</cb:scope>
成功
成功
开发人员部署
$(urlCcnetDashBoard)
$(项目目录)
$(ccnetDirectory)\BuildFiles\$(安全项目名称)
$(部署代码BAT)
$(ccnetDirectory)\Projects\MH\u Web\Web
$(deployMhWebDev)
brh
$(ccnetDirectory)\BatchFiles\
$(部署Heliconbat)
$(ccnetDirectory)\Projects\MH\u Web\Web
“$(部署helicondv)”
httpd.conf
$(ccnetDirectory)\BatchFiles\
电子邮件地址在这里
总是
我认为您需要为您的角色定义安全设置-我没有看到任何内部安全标记。你有广告烫发和账户是很好的,但是你需要告诉CCNet这些是什么意思。尝试在项目标记中添加以下内容(当然,在更改域名和组名之后):
您可以发布一些带有设置的配置文件吗?
<internalSecurity>
<permissions>
<!-- Roles -->
<rolePermission name="Admin" forceBuild="Allow" startProject="Allow" >
<users>
<userName name="DOMAIN\GROUP1\"/>
</users>
</rolePermission>
<rolePermission name="Developers" forceBuild="Deny" startProject="Deny">
<users>
<userName name="DOMAIN\GROUP2\"/>
</users>
</rolePermission>
</permissions>
</internalSecurity>