问题标签 [build-automation]

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 投票
4 回答
13172 浏览

build-process - 是否有设置 CruiseControl.NET 的分步教程?

怎么做 .NET Web 应用程序的自动夜间构建并上传到测试服务器。

或者,如果这个工具太过分了,请提出其他建议。

0 投票
2 回答
2300 浏览

delphi - 在 TFS MSBuild 下运行 Delphi 构建

想要构建和测试一堆与 ASP.NET 服务集成的 Borland Delphi 6 项目。一直在使用 WANT 和 CruiseControl 来构建 Delphi。使用 TFS Build 代理,我们可以将所有内容捆绑在一起并进行一些测试。我正在寻找指导和方向。

我看到的一个问题是,在 Delphi 项目中没有“解决方案”作为“<'SolutionToBuild'>' 提供给 MSBuild。

另外,我有对<UsingTask> 的引用,但我有点不确定如何使用它们。<UsingTask> 允许为 Delphi 命令行编译运行自定义任务。

您的指导将不胜感激。

0 投票
3 回答
1290 浏览

windows-mobile - 构建自动化:MSBuild 与 Windows Mobile SDK

我正在尝试自动化我正在处理的项目的构建。我的最终目标是最终拥有一个持续集成服务器,到目前为止一切都很好。为了找出我可以为我的项目进行的最小设置,我开始配置一个新安装的系统,并偶然发现了安装 Visual Studio IDE 以安装 Windows Mobile 5 SDK 的要求。我觉得在构建服务器上拥有一个成熟的 IDE 是不对的。有没有人尝试过使用 WM 5.0 项目实际自动化构建?它们完全可以自动化吗?

谢谢!

0 投票
1 回答
914 浏览

visual-studio - Visual Studio 的顶级 .mak 文件?

我继承了包含大约十几个子项目的 Visual C++ 源代码。其中之一是一个空的“MakeAll”项目,它依赖于所有其他项目,因此我可以通过将 MakeAll 项目设置为活动并选择“Build All”来构建整个项目。

我想自动化这个过程,并且来自 linux 环境,我的直觉是生成一个 Makefile 并从命令行构建。IDE 将为.mak每个子项目生成文件,但不会为顶级 MakeAll 生成文件。(我假设这是因为它只包含依赖项。)

linux 的答案将是一个 Makefile,它只是下降到每个子项目并make在每个子项目中执行。但是快速浏览这些.mak文件表明,每个人都希望被告知要使用几种配置中的哪一种——显然有些使用 Debug,有些使用 Release,有些使用由以前的开发人员炮制的配置。

从命令行构建一组这样的项目的公认方法是什么?

谢谢!

0 投票
3 回答
8802 浏览

javascript - 脚本缩小和与 MSBuild 的持续集成

在我最近在 C#/ASP.NET 中工作的一个项目中,我有一些相当复杂的 JavaScript 文件和一些漂亮的样式表。当然,随着这些脚本资源的大小不断增长,建议缩小资源并使您的网页尽可能轻巧。我知道许多开发人员在调试后将其 JavaScript 资源手动输入压缩器,然后部署他们的应用程序。

当谈到源代码控制和在令人满意的持续集成世界中自动构建时(感谢CruiseControl.NET);手压根本不行。维护源代码控制和提供压缩资源的唯一方法是将 JS/CSS 源代码及其缩小的兄弟保存在单独的目录结构中。然后在代码隐藏中仅注册一组资源或另一组。但是,如果开发人员对 JS/CSS 源代码进行了更改,然后无法重新压缩它并签入两个版本,那么您的代码行现在不同步了。更别提不雅了。

我认为最好为 CC.NET 任务块编写一个自定义可执行文件(如果尚不存在),它将在构建操作之后但在 asp 之前找到并压缩目标目录中的所有 JavaScript 和 CSS 资源.net 发布到目标。这样,开发人员将只使用 JS 和 CSS 源代码,而用户只能获得缩小的资源。

是否有已执行此任务的应用程序,如果没有,我应该在构建服务器上安装哪种资源以执行 CC.NET?

(我在这里能找到的最接近这个问题的问题需要 NAnt,在我的情况下这不是一个选项。)

编辑: Dave Ward 现在在他的网站 上有一篇关于如何在 Visual Studio 中自动缩小的精彩文章。

0 投票
2 回答
1305 浏览

continuous-integration - 在具有依赖关系的 Linux 和 Windows 平台上同步 CruiseControl 项目

我有一个多平台应用程序集,其中一些应用程序在 Linux 上运行,一些在 Windows 上运行。我想完成以下构建:

服务器 L 运行带有项目 A 的 CruiseControl,这是一个仅限 Linux 的服务器应用程序。这应该首先建立。

如果项目 A 成功构建,它需要以某种方式启动......

项目 B,一个在服务器 W 上运行的纯 Windows 客户端应用程序,带有 CruiseControl.NET 项目 B 包括一些单元测试,这些单元测试具有在服务器数据库中生成一些数据的最终效果。项目 B 大约需要 10 分钟来构建和执行测试。

如果项目 B 构建成功,一直在耐心等待的服务器 L 将启动项目 C,其中包含一些测试用例,用于查找和验证项目 B 生成的数据库条目。

关于如何完成这项工作的任何想法?我找到了这个链接,但它似乎旨在在没有依赖关系的多个平台上构建相同的代码库。

当然,一定有人在某个时候这样做过?

0 投票
1 回答
763 浏览

web-services - 有没有像样的编译器网络服务?

想法是这样的:您将代码提交到存储库并调用 Web 服务(或通过 Web 应用程序输入请求)来编译它。然后将结果推送到 FTP 服务器、S3 存储桶等。公共互联网上是否有类似的东西?

TFS 具有构建队列功能,但我更多地考虑互联网(而不是内部网)Web 服务。如果它可以从已知的源代码控制接口(Subversion、CVS 等)中提取,那么调用者除了选择编译器和特定的编译选项外,只需要传递很少的内容。

我的推理更倾向于消除许多软件安装和配置的麻烦,尤其是在不同语言/平台/框架/项目之间工作时

0 投票
4 回答
2827 浏览

xml - 我可以在运行时查找文件并将其导入到 Ant 构建文件中吗?

我想创建一个 Ant 构建文件,其中包含一些文件作为一种插件。

因此,如果我想激活项目中的一个功能——比如 pmd-checking——我将一个 pmd.xml 复制到一个目录中,并且 build.xml 开始了这个想法,即 pmd.xml 存在并导入它,这样新的目标可用于构建。

但是“导入”任务只能用作顶级任务,所以我不知道如何实现这个功能。Ant可以做到这一点,如果可以,我该怎么做?

编辑:我更喜欢一种解决方案,它允许新目标出现在ant -p.

0 投票
7 回答
4189 浏览

automation - 如何以便宜/免费的方式设置构建服务器?

目前我的任务是进行日常构建。我们有一个带有 SQL Server 2005 后端的 ASP.NET 2005 网站。我们当前的源代码控制是 Visual Source Safe 2005。

在这一点上,我使用日常构建的蛮力方法。

  1. 获取最新版本的源代码
  2. 获取最新版本的数据库发布脚本
  3. 将旧网站文件备份到目录
  4. 将新代码发布到我的本地机器
  5. 在我的服务器上运行以保持测试/阶段站点正常工作
  6. 将新创建的文件推送到网站
  7. 在测试数据库上运行 SQL 脚本(假设更新,否则我不打扰)
  8. 测试服务器上的测试网站。

看到自动化构建的想法让我很感兴趣,因为这意味着我每天早上做的更少。你会建议我如何进行?在我把它介绍给我的老板之前,我想有一个完整的想法。

0 投票
3 回答
3226 浏览

delphi - 如何在 Delphi 中自动设置版本信息?

我想让我的 CodeGear Delphi 2007 项目根据我的项目是处于调试模式还是发布模式自动设置调试模块属性。

我可以通过右键单击项目->版本信息->根据需要编辑值来手动设置此值。这些是针对整个项目的,对于调试和发布版本也是一样的。

如果存在#debug 编译器指令,有没有办法自动将清单设置为调试?

是否有另一种方法可以轻松检测 exe 是作为调试版本还是发布版本构建的?