问题标签 [cruisecontrol.net]

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 回答
733 浏览

build-automation - 如何让 Cruisecontrol 一次只构建一个项目

我刚刚在我们的构建服务器上设置了 Cruise control.net,但我无法找到一个设置来告诉它一次只构建一个项目。有任何想法吗?

0 投票
4 回答
1875 浏览

version-control - 管理构建版本的最佳构建过程解决方案

我运行一个包含多个独立应用程序的相当复杂的项目。然而,这些使用了几个共享组件。所以我有一个类似于下面的源代码树。

  • 我的项目
    • 应用 A
    • 共享1
    • 共享2
    • 应用 B
    • 应用 C

所有应用程序都有自己的 MSBuild 脚本,用于构建项目及其所需的所有共享资源。我还在 CruiseControl 控制的持续集成构建服务器上运行这些构建。

部署应用程序时,它们会部署在多台服务器上以分配负载。这意味着跟踪每个不同服务器上部署的构建/修订版本非常重要(我们需要在 DLL 版本中包含当前版本,例如“1.0.0.68”)。

同样重要的是能够重新创建一个已构建的修订/构建,以便在某些事情没有按预期工作时能够回滚(哦,是的,那发生了......)。今天我们使用 SourceSafe 进行源代码控制,但如果我们能提出充分的理由,这可能会改变(SS,到目前为止它实际上对我们来说工作正常

我们尝试遵循的另一个原则是,只有由我们进一步部署的集成服务器构建和测试的代码。

“CrusieControl 构建标签”解决方案

我们对解决上述问题有几个想法。第一个是让持续集成服务器构建并在本地部署项目并对其进行测试(现在可以这样做)。您可能知道 CruiseControl 中的成功构建会生成一个构建标签,我想我们可以用它来设置可执行文件的 DLL 版本(所以构建标签 35 会创建一个类似“1.0.0.35”的 DLL)?这个想法也是使用这个构建标签来标记完整的源代码树。然后我们可能可以通过该标签检查并稍后重新创建构建。

标记完整树的原因是不仅包括实际的应用程序代码(位于源代码树中的一个位置),还包括所有共享项(位于树中的不同位置)。因此,“Application A”的成功构建将使用标签“ApplicationA35”标记整个树。

但是,在部署之前尝试重新创建此构建并设置 DLL 版本时可能会出现问题,因为我们将无法再访问 CruiseControl 生成的构建标签。如果所有项目的所有 CrusieControl 构建标签都是唯一的,我们可以只使用编号进行标签,但情况并非如此(应用程序 A 和 B 可以同时在构建 35 上)所以我们必须在标签。因此 SourceSafe 标签为“Application35”。一旦我们构建了构建 35,我如何重新创建构建 34 并将 1.0.0.34 设置为 DLL 版本号?

“修订号”解决方案

有人告诉我,例如 Subversion 会在每次签入时为整个源代码树创建一个修订号——是这样吗?SourceSafe 有类似的东西吗?如果这是正确的,那么想法是在获取最新版本时获取该修订号并在 CruiseControl 服务器上构建。然后可以使用修订号来设置 DLL 版本号(例如“1.0.0.5678”)。我想如果需要,我们可以为 Subversion 获得这个特定的修订,然后将包括该应用程序和所有共享项目,以便能够从过去重新创建特定版本。这会起作用吗?这是否也可以使用 SourceSafe 来实现?

总结

所以两个主要要求是:

  1. 能够跟踪构建和部署的 DLL 的构建/修订号。
  2. 能够重建过去的修订/构建,在该构建的可执行文件上设置旧的构建/修订号(以符合要求 1)。

那么你将如何解决这个问题?您首选的方法是什么,您将如何解决它(或者您有完全不同的想法?)?**请给出详细答案。**

奖励问题修订号和内部版本号之间有什么区别,什么时候真正需要两者?

0 投票
17 回答
11444 浏览

svn - TFS 与开源替代方案?

我们目前正在为 .NET 开发设置源代码控制/构建/和更多服务器,我们正在考虑使用 Team Foundation Server(花费大量资金)或结合几个开源选项,如 SourceForge Enterprise/GForge 和 Subversion 和 CruiseControl.net 等。有没有人走过完整的 OSS 道路,或者只有当你想把它做好并尽快开始工作时才使用 TFS?

0 投票
3 回答
361 浏览

svn - 与 Team System 相互迁移的工具有多好?

我想知道是否有人尝试在 TS 和 SVN/CC 之间迁移。我所说的迁移是在源控制系统之间导入和导出存储库而不丢失历史记录。

迁移到 VSTS 和从 VSTS 迁移的工具有多好?

我也有兴趣了解 SVN 和持续集成用户对使用 Team System 的任何意见。

编辑:假设我需要历史,否则为什么要使用 SCM?

0 投票
5 回答
12134 浏览

tfs - Cruise Control .Net 与 Team Foundation 构建

我们的团队正在设置夜间和持续集成构建。我们拥有 Team Foundation Server,可以使用 Team Foundation Build。我更熟悉 CC.Net 并以这种方式精益求精,但管理层看到了花在 TFS 上的所有资金并希望使用它。

我更喜欢 CC.Net 的一些地方是通知的灵活性以及实现自定义脚本的简易性。

如果您对这两种产品都有经验,您更喜欢哪一种,为什么?

0 投票
1 回答
500 浏览

.net - 为 IIS 5.1 开发盒和 IIS6 服务器设置 CruiseControl 的最佳方式

谁能指出我正确的方向。通过阅读 Cruisecontrol 的常见问题解答,您似乎应该在与生产相同的环境中进行开发。

但我的开发机器上有 Windows XP(只运行 IIS 5.1),服务器是 2003。

0 投票
2 回答
685 浏览

.net - 巡航控制和混淆,如何?

这是我对stackoverflow的第一个问题,所以就在这里...

我将巡航控制用于我的持续集成方案,我想使用混淆来为我的程序集添加另一个保护层。问题是我不知道该怎么做,因为我找不到描述这个的文章。包含其他 CI 工具(例如 NAnt)的建议也被接受。

商业工具也是一种选择,因此请不要犹豫,将它们包含在您的答案中。我正在构建并想要混淆的应用程序大多是用 Compact Framework 2.0、Dot Net 2.0-3.5 编写的。

目前 Cruise Control 检查存储库中的更改,然后基于特定解决方案的脚本下载并使用 devenv 构建项目,在运行安装项目后,它将安装文件复制到不同的文件夹中,更多或少它。所以我需要在这个过程中的某个地方混淆..

0 投票
5 回答
732 浏览

svn - 持续集成中的清洁构建

我们为 CI 使用 CruiseControl.Net/NAnt/Subversion 堆栈。对每个构建进行新的检查太费时了,所以目前我们只是对工作副本进行更新。但是,这留下了孤立文件在源代码管理中被删除后可能保留在工作副本中的可能性。我们曾尝试使用 NAnt 删除任务在更新前删除所有代码源文件,但这可能会损坏工作副本。有谁知道在干净且最新的工作副本上运行构建的快速方法?编辑:我们在 SVN 1.3.2

0 投票
4 回答
661 浏览

continuous-integration - CruiseControl + Starteam:不拾取所有文件

我们的 CruiseControl 系统从 starteam 签出。我注意到它有时不检查新版本的文件,只检查添加的文件。

有人知道为什么吗?

0 投票
4 回答
3510 浏览

cruisecontrol.net - CruiseControl.NET 构建后操作

我们在我们的 ASP.NET 应用程序上设置了 CC.NET。当我们构建项目时,ASP.NET 应用程序被预编译并复制到网络共享,服务器从该网络共享运行应用程序。

服务器与开发盒有点不同,我们的暂存环境中的下一个服务器则更加不同。区别在于特定的配置文件等等——所以我想排除一些文件——或者在将预编译的应用程序复制到网络共享之前删除它们。

我的配置文件如下所示:

如您所见,我使用 buildPublisher 将预编译文件复制到网络共享。我在这里要做的是 1)在复制某些文件之前删除它们或 2)在复制这些文件后替换它们。

我不想让一些应用程序运行监视特定文件以进行更改,然后用其他文件替换这些文件。我希望某些事情要么由 CC.NET 完成,要么由 CC.NET 触发。

你能用 CC.NET 启动一个 .bat 文件吗?