buildbot
継続的インテグレーション ツールとして使用しています。LinuxとWindowsの両方のプラットフォームで、コミット ビルドとナイトリー ビルドを完全に実行できます。
(各commit builds
コミットでトリガーされる) とnightly builds
(毎晩、クリーンなリポジトリ チェックアウトからビルドする) には、2 つの異なるビルダーを使用します。しかし、最終的には、ソース リポジトリの get ステップを除いて、どちらも同じコマンドを実行します。さらに、http ウォーターフォール ビューでは、それらは 2 つの列を占有しますが、一方は日中のみ使用され、もう一方は夜間に 1 回だけ使用されます。
ナイトリー ビルドとデイリー コミット ビルドの両方を実行する 1 つのビルダーだけで構成できるかどうか疑問に思っていました。
(コミットビルドを毎晩リセットすることは利点として追加されます!)
編集:解決策
Tom Princeの回答に続いて、「doStepIf」を使用してこれらすべてをセットアップすることができました。ナイトリー スケジューラでプロパティを設定し、このプロパティを SVN ステップの直前の RemoveDirectory ステップの doStepIf に使用する必要があります。
commit = AnyBranchScheduler( name="commit", treeStableTimer=5*60,
builderNames=["builder"] )
nightly = Nightly( name='nightly', hour=23, minute=40,
properties={'full':True},
builderNames=["builder"] )
def IsFullBuild(step):
return step.build.getProperties().has_key('full')
and step.build.getProperty('full')
factory.addStep( RemoveDirectory( dir="build", doStepIf=IsFullBuild ) )
factory.addStep( SVN( ... ) )