2

buildbot継続的インテグレーション ツールとして使用しています。LinuxWindowsの両方のプラットフォームで、コミット ビルドとナイトリー ビルドを完全に実行できます。

(各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( ... ) )
4

1 に答える 1

3

現時点では、スケジューラの 1 つでプロパティを設定し、 によって制御される 2 つのステップを使用して、doStepIf1 つのみが実行されるようにすることで、これを行うことができます。

buildbot に小さな変更を加える必要がある別のオプションは、modeパラメーターをレンダリング可能にすることです。これにより、プロパティを使用して、リポジトリの更新に使用されるモードを制御できるようになります。

于 2012-06-14T13:49:15.253 に答える