2017-02-15 10 views
1

私はプロジェクトでbuildbotを使用しています。変更があるたびに自動的にプロジェクトをビルドして、コンパイルがうまくいくかどうかをテストするスケジューラの設定があります。これは動作し、buildbotはすべてのブランチの変更を検出しますが、スケジューラは変更がどのブランチに関係していても常にmasterブランチを作成します。私はそれが変更されている支店を構築したいが、私はその仕事をするのに問題がある。buildbotの任意のブランチのビルドをトリガーする方法

GitPoller:ここではBuildbotの構成の関連する部分がある

c['change_source'].append(GitPoller(
    repourl='[email protected]:someproject.git', 
    branches=True, 
    pollinterval=60)) 

スケジューラ:

c['schedulers'].append(AnyBranchScheduler(
    name='all', 
    treeStableTimer=2*60, 
    builderNames=['builder 1', 'builder 2'])) 

これは私がコードをチェックアウトするために、いくつかのビルダーで使用するヘルパー関数です。私はほとんど常にパラメータなしでそれを呼び出しています。このパラメータを使用するのはまれなケースですが、上記のスケジューラはそのようなビルダーを実行しません。私は、パラメータを使用しないとき、私はいつもelseブロックで実行していることを前提としています

def CheckoutFactory(whichBranch = ''): 
    factory = BuildFactory() 
    if whichBranch: 
     factory.addStep(Git(repourl='[email protected]:someproject.git', branch=whichBranch, mode='full', method='fresh', alwaysUseLatest=True, progress=True)) 
    else: 
     factory.addStep(Git(repourl='[email protected]:someproject.git', mode='full', method='fresh', alwaysUseLatest=True, progress=True)) 
    return factory 

ここで間違っていますか?私は間違ったことをやっていますか?そして、buildbotを変更してブランチ上のビルドを実行させるにはどうしたらいいですか?

構成:

  • BuildbotのマスターはXubuntuの16.04.1 64ビット上で実行されています。
  • ビルドボットバージョンは0.8.12です。 (reposから)
  • Gitはバージョン2.7.4です。 (reposから)

答えて

0

私はそれを修正しました。私が思ったようにそれは自動ではないようです。ブランチはbranchプロパティの値を使用してGitステップに渡されなければなりません。関連する変更は、このパラメータが追加されていることである

factory.addStep(Git(repourl='[email protected]:someproject.git', branch=WithProperties('%s', 'branch'), mode='full', method='fresh', alwaysUseLatest=True, progress=True)) 

branch=WithProperties('%s', 'branch') 

「それはthis problemの引き金になるので、私は非推奨WithPropertiesなくProperyを使用しています、と私はdidnの私はこのようにそれをやりました設定を変更したくない。

関連する問題