我很想知道其他人在构建自动化过程中做了什么,而不是通常的编译,构建,运行测试等任务,这些任务可能对其他人有所帮助和启发,以便其他人考虑和研究如下:
答案 0 :(得分:43)
将可执行文件解雇到http://virustotal.com,以便对所有主要的反病毒引擎进行病毒扫描。
并非我们认为我们的exes包含病毒,但有时您会得到误报,并且您不希望它成为找到它的客户。 8 - )
答案 1 :(得分:21)
我们有一个Twitter帐户,因此我们可以随时随地查看其状态
答案 2 :(得分:20)
我们有一个Staples easy按钮,我们已经连接起来按下按下时的构建。
答案 3 :(得分:16)
为可能分散在代码中的任何TODO / FIXME等创建报告。
答案 4 :(得分:15)
以下是我已经做过,做过或打算做的一些事情:
答案 5 :(得分:12)
从failblog.com中提取随机图片以附加到“构建失败”电子邮件。
答案 6 :(得分:7)
自动推进您的问题工作流程。
我们为Bamboo CI服务器编写了一个自定义插件,它收集了与构建相关的所有JIRA问题(根据svn提交注释确定)并检查它们在JIRA中的状态。
一旦构建成功(并将应用程序部署到正在运行的服务器),“等待构建”工作流阶段中的任何问题都会自动进入“构建和可用”测试“阶段,触发电子邮件发送给分配给该问题的测试人员。
这意味着我们的测试人员不会在开发人员检查代码时收到问题通知电子邮件,但是当修补程序在服务器上运行时,测试人员可以实际执行某些操作。
答案 7 :(得分:6)
直接部署网站以测试部署服务器。
答案 8 :(得分:4)
我们将数字签名应用于我们生成的所有二进制文件。构建脚本会自动执行此操作。
答案 9 :(得分:4)
一些事情。
答案 10 :(得分:3)
在SVG初始屏幕中替换版本号,然后替换renders it in Inkscape。
答案 11 :(得分:2)
对于Java开发,我们使用:
哈德森也
答案 12 :(得分:2)
我们对我们最新的公开发布进行二进制兼容性分析(使用反射),以确保我们不会意外地引入二进制分解更改。每当我们被迫进行重大更改时,我们会将特定的api添加到“已接受的重大更改”列表中,以便下一个构建可以跳过测试。在发布时,我们会在新版本中提供完整的API列表。
答案 13 :(得分:2)
我们构建BizTalk 2006项目:)
答案 14 :(得分:2)
托管代码:
原生代码:
答案 15 :(得分:2)
我们有一个网络应用程序并进行了性能测试,并将HTML / CSS验证放入测试脚本中。
答案 16 :(得分:2)
我参与过的各种项目都有大量的公开展示,其中包括最后一次登记的人以及谁破坏了构建。我们使用Build-o-matic执行了此操作,并编写了Team Piazza来显示Team City版本的相同信息。
答案 17 :(得分:1)
我们做了很多:使用MSBUILD
答案 18 :(得分:1)
我在这里没有阅读超过一半的答案,但我希望其中一些是“新的”:
答案 19 :(得分:1)
除了已经多次提到的版本控制,签名和测试等,我们还要:
答案 20 :(得分:1)
我真的很惊讶没人提到更新配置文件!我们根据使用构建脚本构建的环境更新配置文件b。它可以节省至少20分钟来替换所有的connectionStrings和appSettings。我们做的其他事情是:
更新版本号
转到测试服务器
运行代码分析
电子邮件构建状态
运行一些数据库脚本
答案 21 :(得分:1)
我们有Nabaztag/tag显示构建服务器上是否发生任何错误。
答案 22 :(得分:1)
我们使用'checkstyle'(http://checkstyle.sourceforge.net/anttask.html)生成一个报告,该报告可以在开发人员构建之前重新签入并且不会(正式)审核。 另外,我编写了一些执行以下操作的自定义任务:
还有几个任务,但它们特定于内部环境 相关设置。
答案 23 :(得分:1)
以下是Continuous Integration中我常常遇到的一些事情:
答案 24 :(得分:1)
我们做过的一些事情:
答案 25 :(得分:1)
如何在每个构建的映像中嵌入构建时间戳?
<ItemGroup>
<StampFile Include="BuildTimestamp.cs"/>
</ItemGroup>
<Target Name="BuildTimestamp"
Outputs="@(StampFile)">
<Message Text="Building Timestamp..." />
<Touch
AlwaysCreate = "true"
Files="@(StampFile)" />
<WriteLinesToFile
File="@(StampFile)"
Lines='public static class Build { public static string Timestamp = "%(StampFile.CreatedTime)" %3B }'
Overwrite="true"/>
</Target>
您可以将其扩展为包括机器名称,月亮阶段等。
答案 26 :(得分:1)
运行单元测试和代码分析工具,如NDepend,Gandarme。 结果由CC.Net
发布答案 27 :(得分:1)
在Post build步骤中重置测试数据库:
使用这些文件
在此之后,我们有一个干净的测试数据库,具有正确的模式,来自中央数据库的所有固定数据,然后是一些额外的测试数据。
如果架构和固定数据也可以在可比数据和sql文件中,那就更好了,但那是WIP。中央数据库还没有,但应该在源代码控制中。
答案 28 :(得分:1)
对于Java,您还可以使用Ivy自动获取任何缺少的库。例如,如果您使用Hibernate,您可能希望也可能不希望在您的版本中包含这些库。
答案 29 :(得分:1)
我们有一个构建脚本,可以自动标记构建和SVN,并将应用程序部署到WebSphere应用程序服务器。
答案 30 :(得分:-3)
处理其他一个紧迫的截止日期或赶上电子邮件(等待那不酷或有趣......)好吧,这就是我真正做的事情:http://samurai-ryan.mybrute.com/