【问题标题】:Ctest/CDash workflow : deploying nightly buildsCtest/Cdash 工作流程:部署夜间构建
【发布时间】:2012-02-24 08:42:21
【问题描述】:

我使用/维护了一些 CMake 项目,所以我开始研究 CTest/Cdash,但有些东西我想不通:

是否仅用于显示构建/测试结果? (又名美化日志)

或者:可以在该工作流程中包含在服务器上部署夜间构建二进制文件吗?

尽管我认为 CTest 是测试 CMake 项目和显示测试结果的理想工具,但我还想在 Web 服务器上自动部署夜间构建,我想知道它是否适合那……

【问题讨论】:

    标签: c++ continuous-integration cmake ctest cdash


    【解决方案1】:

    这是 Cdash 2.0 和最近的 CTest 中的一个新功能,您可以看到一个用于 ParaView 的实验示例,

    http://trunk.cdash.org/index.php?project=ParaView

    导致它的 CTest 脚本可作为注释查看,例如(从该仪表板),

    http://trunk.cdash.org/viewNotes.php?buildid=10381

    如果没有其他人首先使用它,我计划在 Cdash 2.0 完全发布后写下如何使用它。因此,该功能现在肯定存在,但非常新。我认为这是一个很棒的功能,并计划在我的项目中使用它来提供夜间二进制文件。

    【讨论】:

    • 很高兴知道...对于我的个人项目,我最终决定使用Jenkins+windows批处理文件,直接调用CMake+Visual Studio,因为它最终更适合我的需求,但我会一定要留意 Cdash。
    • 有几种方法可以做到这一点,我认为 Cdash 二进制文件上传功能是一个不错的功能,我正在考虑将它与 MIDAS 结合起来,为用户提供一个页面,以便为他们的用户获取最新的二进制文件平台也是(比 Cdash 页面信息少)。对于跨多个站点的分布式测试,只有对 Cdash 服务器的推送访问,我还没有找到更好的方法,但也继续研究其他解决方案。
    • 这个答案中的链接似乎已经过时了,它没有直接包含有关所需步骤的具体信息,任何知道这里意味着什么的人可以更新它吗?
    【解决方案2】:

    这是一项任务,将由 CMake 执行,而不是由 CTest 或 Cdash 执行。我们使用 CMake 生成安装程序映像并将其复制到文件系统的某个位置。您可以使用 add_custom_target 来指定这样的目标。然后,您的夜间构建可能会简单地包含此目标。

    【讨论】:

    • 好的,但是如果我想只在所有 CTest 测试都正常的情况下部署夜间构建,该怎么办?它也将使用 add_custom_target 启动 CTest?另一个问题是我希望看到 Cdash 中的成功构建与构建本身之间的联系......至少从 SDK 用户的角度来看,它似乎更加一致......
    • 如果成功,我认为 ctest 返回 0?在这种情况下,您可以执行类似 'ctest -S nightly_script.ctest && ' 之类的操作,只有在第一个命令返回 0 时才会执行 && 之后的命令(不确定 Windows 外壳是否等效)
    猜你喜欢
    • 1970-01-01
    • 2011-03-07
    • 1970-01-01
    • 2012-10-12
    • 2018-07-12
    • 2014-08-07
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    相关资源
    最近更新 更多