9

小さな開発者向けの簡単なCIが必要です。2つの動機-完全なビルドには時間がかかり、予想されるテストスイートにも時間がかかります。私は、Javaアプリケーションコンテナや、複数の色などの派手なグラフを表示するものを必要とする大手企業の1つに真っ向から飛び込むのではなく、特に「文化的に」ハス​​ケリッシュなもの、できればコマンドラインの相互作用に興味があります。または設定ファイル、およびDarcsとの相互作用は絶対に必要です。

そのようなツールは存在しますか、それとも私は大手プレーヤーの1人に固執したり、自分で書いたりしていますか?

そういえば、GHC用にビルドファームが設置されていることを思い出します。それを見ると、以前はbuildbotを使用していましたが、現在はカスタムビルダーを使用していることがわかります。これらは別のワークフロー用に設定されていますが、どちらかがより単純で簡単なソリューションでしょうか?

編集:私は今のところbuildbotを使用します。それがどのように機能するかで更新されます。

Edit2:Ben Lippmeierは、ビルドボックスをハッキングに配置しました。これは、ネイティブのHaskellCIソリューションの基盤でもあるようです。それは現在文書化されておらず、おそらく私のニーズに対して完全な機能ではありませんが、ここにあります:http: //hackage.haskell.org/package/buildbox。彼はそれを使ってrepaのビルドボットを作成しました:http://code.haskell.org/repa/repa-head/repa-bot/

4

2 に答える 2

4

これが私がしたことです。

  1. 指示に従ってbuildbot-server/buildslaveをインストールします。
  2. darcs_buildbotスクリプトをインストールします:https ://github.com/buildbot/buildbot/blob/master/master/contrib/darcs_buildbot.py
  3. _darcs / defaults(これは共有リポジトリ用です)のapplyposthookを次のように変更します。

posthook chmod a + w myrepo / _darcs / index myrepo/.darcs_buildbot-lastchangeを適用します。/usr/local/bin/darcs_buildbot.py buildbotmachine:buildbotport;

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]

スケジューラーなどもドキュメントに従って構成する必要があります。

これで、誰かが共有リポジトリにプッシュするたびに、ビルドがトリガーされます。追加のテストコマンドも簡単に追加できます。

これまでのところ、これはうまくいっています!

完全なリポジトリではなくインクリメンタルにプルするようにビルドスレーブにパッチを適用したと思いますが、何をしたか思い出せず、新しいバージョンでまだ必要かどうかもわかりません。

于 2010-12-16T16:07:15.277 に答える
3

darcsチーム自体はbuildbotを使用しています。スクリプトがどこにあるのかはよくわかりませんが、メーリングリストやIRCで質問すれば、簡単に入手できるはずです。

于 2010-10-27T04:54:08.090 に答える