2017-01-26 14 views
1

ビルドボット9(0.9.1)でトリガースケジューラーをセットアップしようとしていますが、これがどのように動作するのか誤解していると思います。 私は2つのビルダーがありますBuildbotトリガースケジューラーと作業ディレクトリの関係

  • CompilerBuilderを
  • PackageBuilder
  • CompilerBuilderの

    最後のステップは、トリガーステップである

steps.Trigger (schedulerNames=['package'], 
       waitForFinish=True) 

マスター設定ファイルは、トリガ可能スケジューラがあります。

c['schedulers'].append(schedulers.Triggerable(
    name="package", 
    builderNames=['package'])) 

CompilerBuilderは、最後のステップに到達するとA SingleBranchスケジューラがCompilerBuilder

  • を開始

    • 私は何を期待/達成したいことは、PackageBuilderがトリガされているので、新鮮にコンパイルされたソフトウェアがパッケージ化されています。 CompilerBuilderは、最後のステップに到達すると、本当に

      • SingleBranchスケジューラをどうなり

      は、これまでのところは... PackageBuilderは

  • がトリガされ、CompilerBuilder
  • を開始しますGood、残念ながら、PackageBuilderは、コードがチェックアウトされコンパイルされた場所とは異なる作業ディレクトリの中で起動されるため、pac kage作成プロセスが失敗します。

    私の理解では、トリガされたビルダーは "呼び出し元"ビルダーの同じ作業ディレクトリで実行されるだろうが、正しくビルダー/スケジューラを正しく構成する方法を理解していないと思う。

    ヒント?

  • +0

    なぜ、作業ディレクトリをプロパティに渡すのですか? – ayaye

    +0

    @ayayeは選択肢かもしれませんが、これがどのように動作するのかを本当に理解したいと思います。私は、作業ディレクトリがトリガからトリガされたビルダー間で「暗黙のうちに」渡されることを期待しています。そうでなければ – sergico

    +1

    のユースケースを把握することはできません。これらのビルダーは異なる作業ディレクトリを持っています。たとえば、最初のライブラリはライブラリをビルドし、もう1つはそのライブラリに依存する他のコンポーネントをビルドします。 obviosly、彼らは異なる作業ディレクトリを持っています。 – ayaye

    答えて

    1

    残念ながら、それぞれのビルダーには独自の作業ディレクトリがあります。シングルブランチスケジューラビルダーの一部として、パッケージステップのリストとともにaddSteps(addStepではなく)を使用することをお勧めします。常にパッケージ化したくない場合は、いくつかのロジックを追加してdoStepIfを追加してください。

    関連する問題