问题标签 [ccnet-config]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
232 浏览

email - 如何在 CruiseControl.NET 的电子邮件通知中省略某些构建类型?

为了确定项目是否“从头开始”编译,我们有夜间构建。通常这些构建是成功的,因此,关于它们的邮件不是很有用。

还有通常的构建,在有人将代码提交到版本控制之后运行。由于这些电子邮件包含提交消息和更改的文件列表,因此即使对于成功的构建它们也很有用。

如何过滤成功的夜间电子邮件,同时仍然照常发送?最好通过 CruiseControl.Net 的方式。

这是 CruiseControl.Netccnet.config配置文件的一部分:

可能执行的线索<exec>节点程序可以通过检查环境变量来确定哪个触发器开始构建CCNetRequestSource

但是,即使CCNetRequestSource在节点中可用<email>,但我发现<email>节点无法使用它。

有人能帮我吗?

更新:找到相关问题 - CruiseControl.net 电子邮件

0 投票
2 回答
147 浏览

.net - ForceBuild 对这种情况的关注 - CruiseControl.NET

我有三个有问题的项目,我们称它们为 A、B 和 C。其中“A”只是为 B 准备了一个 cetain 构建场景,这是主要构建。C 清理场景并基本上将 B 重置为其原始状态。我已将这些项目设置在同一个队列中,并在项目 B 失败时测试了这个过程的大部分工作。这是这种情况,下面将对此进行解释。

场景:

  1. 当项目'A'被强制执行时,它会构建项目B,如果B成功,它会构建C。这很好。
  2. 当项目'A'被强制执行时,它会构建项目'B',如果B失败,它会构建C。在我的情况下这也很好。
  3. 现在在项目 B 中修复了 2 号场景和错误之后;如果项目 A 再次被强制并且项目 B 显示巡航状态为“固定”,则它不会构建 C。这不好吗?

如果 2 号和 3 号的组合发生,任何人都可以看到项目 C 将无法构建的原因吗?欢迎任何帮助或指导。

谢谢。

0 投票
1 回答
642 浏览

cruisecontrol.net - CruiseControl.Net 依赖项目配置

我想为同一个 .net 项目设置以下 CI 配置:

  1. 构建并运行单元测试(CCNet Project1)。
  2. 构建并运行验收(端到端集成)测试(CCNet Project2)。

因此,我需要以某种方式配置仅在 Project1 成功的情况下才应执行 Project2,并使用与上一次成功的 Project1 修订版相同的修订版。

我设法配置了远程项目触发器。但是,我不清楚在从 SVN 获取源时如何使用与上次成功的 Project1 相同的修订号。有任何想法吗?

0 投票
1 回答
287 浏览

asp.net - 相同的 MSBuild 文件,本地机器和 CCNet 上的不同结果

背景

我正在使用以下内容:

  • 对比 2012
  • .NET 4.5 应用程序,包括 MVC4 应用程序、C# 域应用程序和 NUnit 项目。
  • 自定义 MSBuild 文件
  • CruiseControl.NET 在构建服务器上运行

我有以下构建目标:

  • Clean:删除 buildartifacts 目录
  • Init:创建一个空白的 buildartifacts 目录
  • 编译:编译解决方案
  • 测试:运行 NUnit 测试
  • 包:创建一个用于部署的 ZIP 包
  • 部署:将包部署到远程 IIS 服务器

问题

  • 当我从本地机器运行构建时,它会完美地打包和部署。
  • 当 CCNet 运行相同的构建目标时,文件似乎已部署

尝试的解决方案/潜在的潜在客户

  • 我在两台机器上都在 PowerShell 中运行了相同的目标,并且都没有看到任何错误或警告。
  • 因为我告诉 CCNEt 覆盖框架以将其指向我已复制到构建服务器的 .NET 4.5 文件,所以我在运行 MSBuild 时使本地计算机指向相同的文件,但我的本地构建仍然可以工作和部署。
  • 在 Visual Studio 中,我确保所有内容文件都标有“内容”的构建操作和“始终复制”的复制到输出设置。

编码

0 投票
1 回答
555 浏览

c# - ccnet 中的 Assert.Inconclusive() 测试无法构建

我有一个 Visual Studio 2010 测试工具,它为同一个测试测试不同的端点(应用程序),当为所有端点运行时,一些测试不会针对端点运行并作为不确定的测试返回,这反过来又使构建失败。使用用于持续集成的 mstest/ccnet 是否有办法使构建通过但仍显示不确定测试的计数。

我浏览了这个博客,但无法通过更改项目来为 ccnet 项目工作。文件。

任何帮助或建议将不胜感激。

0 投票
1 回答
796 浏览

cruisecontrol.net - CruiseControl.Net 间歇性检测 SVN 修改

我正在使用 ccnet 1.6。我的构建服务器和 svn 服务器时钟同步非常接近(小于 30 秒的差异)。我的 ccnet 配置文件具有轮询 SVN 修改的正确设置,如下所示:

当我提交任何东西时,构建被触发,我是 brian,为 sourceControlProvider 提供的用户名。一个团队成员进行了提交,并且为他间歇性地触发了构建。也许它对我来说也是间歇性触发的,但我似乎总是很幸运并在我提交时触发构建。

0 投票
1 回答
3701 浏览

git - 如何在 Windows 服务器中使用 git 设置 CruiseControl.net

谁能帮我用 git 存储库设置 Cruisecontrol.net。

这就是我在 Cruisecontrol 配置文件中包含的内容

在此处输入图像描述

但是当我运行 ccnet 控制台时它失败了。

我使用了 openSSH 密钥(私有和公共)。

我认为身份验证有问题。

当我使用 git bash 克隆存储库时,它正在工作。但是CCNET失败了

我花了超过 2 天的时间来设置我的构建服务器。仍然无法正确处理。

我需要一些帮助/指导。

是否有描述正确步骤的适当文章或博客?

我在互联网上搜索并尝试了很多东西。没有工作:(

提前致谢

0 投票
1 回答
460 浏览

ldap - CCNetModifyingUsersCCNET 1.6 到 1.8 升级后的值变化

在将我们的一台构建服务器升级到最新版本的 CCNET 后,它停止向修改组发送电子邮件。我们使用 Mercurial 进行源代码控制,并且版本 2.3.2 安装在构建服务器上。

buildmasters 组仍会收到电子邮件,但不会收到修饰符:

在挖掘构建日志后,我注意到<user>下面的值<CCNetModifyingUsers>发生了如下变化:

从(CCNET 1.6):

至(CCNET 1.8):

不确定如何填充<user>下面的值<CCNetModifyingUsers>或如何修复它。

更新#1:我正在尝试查看更改<converter>为 ldapConverter 是否可以解决我的问题。

更新#2:仍在尝试弄乱ldapConverter:

此版本抛出异常:

EmailPublisher 异常:System.FormatException:指定的字符串不是电子邮件地址所需的格式。在 System.Net.Mime.MailBnfHelper.ReadMailAddress(String data, Int32& offset, String& displayName) at System.Net.Mail.MailAddressCollection.ParseValue(String addresses) at ThoughtWorks.CruiseControl.Core.Publishers.EmailPublisher.GetMailMessage(String from,在 ThoughtWorks.CruiseControl.Core.Publishers.EmailPublisher.SendMessage(String from, String to, String replyto, String subject, String message, String workingFolder) )

虽然这样:

成功构建,但不向修改器发送电子邮件。

更新#3:

我已经实施了以下临时修复:

但是,它不包括以下情况:

  • 人们的 Mercurialusername与他们的电子邮件地址名称不匹配
  • 有双重(三重?)名字或姓氏的人

更新#4:

将不得不通过源代码来查看我是否可以准确地追踪导致问题的原因......可能必须保持它的本地构建。

0 投票
1 回答
775 浏览

cruisecontrol.net - 如何在 CruiseControlNet 构建上自定义 buildCondition="IfModificationExists"?

好的..我一直在搜索这个特定的问题,并且确实找到了一些示例,但并不完全是我想要的答案。任何想法,输入将不胜感激!

我的情况是..

我有一个通过 CCNet 进行的日常构建过程。它们在构建时都有一个 buildCondition="ifModificationExists" 参数。当且仅当有修改(检查源“更新”)时,这允许 CCNet 构建。

问题是,我在每个构建的最后部分添加了一个版本提交过程。这意味着,如果我要构建 1.0.0.3,我将提交更改的 AssemblyInfo.cs 文件(包含更新的版本号),并允许我在构建每个版本时检查日志。

这完全搞砸了整个自动化的每日构建过程。你看,因为它在每次构建时都会提交版本,无论它是否有任何其他更新,CCNet 认为在每天早上构建之前总是有修改。事实上,唯一的修改是上次构建的版本更新。

我想不出一种方法来解决这个问题,通过在存在修改时保持版本更新+每日自动构建。

有什么帮助吗?:)

编辑 1. 这是我的每个构建的触发器部分:

编辑 2. 这是我使用 powershell 提交文件 (AssemblyInfo.cs) 的部分

先感谢您,

0 投票
1 回答
445 浏览

cruisecontrol.net - 如何在 CCNet 中设置定义多个参数?

我在 CCNet 1.4 版中工作,我很难以干净的方式获得我想要定义的参数。在我的示例中,我想要 6 个总项目(2 个分支中的 3 个解决方案)。我定义了一个通用项目,它可以基于 8 个变量的选择包含所有 6 种可能性。当它是一个主干项目时,其中 4 个变量应该是一回事。当它是一个分支项目时,4 个变量应该是另一回事。其他 4 个变量取决于我要构建的解决方案。

在下面的尝试中,我将 4 个主干变量放在一个定义块中,将 4 个发布变量放在另一个块中。我也有每个解决方案的定义块。

最后,我尝试通过引用主干或发布版本的定义块和解决方案的正确定义块来定义 6 个项目。

这不起作用,我希望有人能指出我做错了什么。当我尝试加载此配置时,我收到的错误是:

正如您在 TrunkBuildParameters 和 ReleaseBranchBuildParameters 中看到的那样,我在两者中都定义了 LabelPrefix,并且所有 6 个项目都引用了这些定义块中的一个或另一个。然后我尝试在项目的块中引用它。这显然不是定义项目使用的变量的有效方式。有人可以告诉我我做错了什么,或者可能是更好的方法吗?