gpt4 book ai didi

haskell - 用于集中式 Haskell/Darcs 工具链的轻量级持续集成?

转载 作者:行者123 更新时间:2023-12-04 04:13:49 24 4
gpt4 key购买 nike

我想要一些简单的 CI 用于小型开发设置。两个动机——一个完整的构建需要一些时间,一个预期的测试套件也需要一些时间。我真的不想一头扎进需要Java应用程序容器或其他任何东西来显示具有多种颜色的精美图形等的大玩家之一。我特别对“文化上”的Haskellish感兴趣——最好是命令行交互或配置文件,与 Darcs 互操作是绝对必须的。

是否存在任何此类工具,或者我是坚持使用其中一个大玩家还是自己编写?

说到这,我记得有一个为 GHC 设置的构建农场。看着它,我注意到它曾经使用 buildbot,现在使用自定义构建器。尽管它们是为不同的工作流程设置的,但它们中的任何一个都是更简单、更直接的解决方案吗?

编辑:我现在要使用 buildbot。将更新它的工作原理。

Edit2:Ben Lippmeier 将 buildbox 放在了 hackage 上,这似乎也是原生 Haskell CI 解决方案的基础。它目前没有得到充分的记录,并且可能无法满足我的需要,但这里是:http://hackage.haskell.org/package/buildbox .他用它为repa 编写了一个构建机器人:http://code.haskell.org/repa/repa-head/repa-bot/ .

最佳答案

所以这就是我所做的。

  • 按照说明安装 buildbot-server/buildslave。
  • 安装 darcs_buildbot 脚本:https://github.com/buildbot/buildbot/blob/master/master/contrib/darcs_buildbot.py
  • 将 _darcs/defaults 中的 apply posthook(用于共享 repo)更改为以下内容:

  • apply posthook chmod a+w myrepo/_darcs/index myrepo/.darcs_buildbot-lastchange; /usr/local/bin/darcs_buildbot.py buildbotmachine:buildbotport;

    apply run-posthook


    至于 buildbot 配置文件,如下所示是一个简单的设置:
    darcsroot = "/myrepo/"

    from buildbot.process import factory
    from buildbot.steps.source import Darcs
    from buildbot.steps.shell import Compile
    from buildbot.steps.shell import Test
    f1 = factory.BuildFactory()
    f1.addStep(Darcs(repourl=darcsroot))
    f1.addStep(Compile(command=["ghc","--make","Setup.hs"]))
    f1.addStep(Compile(command=["./Setup","configure"],warningPattern="^\(Warning:"))
    f1.addStep(Compile(command=["./Setup","build"],warningPattern="^\(Warning:"))
    b1 = {'name': "buildbot-full",
    'slavename': "bot1name",
    'builddir': "full",
    'factory': f1,
    }
    c['builders'] = [b1]
    调度程序等也需要根据文档进行配置。
    现在,每当有人推送到共享存储库时,都会触发构建。也可以轻松添加其他测试命令。
    到目前为止,这一直很好!
    我想我修补了 buildslave 以增量而不是完整的 repo,但我不记得我做了什么,也不知道它是否仍然需要更新版本。

    关于haskell - 用于集中式 Haskell/Darcs 工具链的轻量级持续集成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4000005/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com