0

問題のプロジェクトが 3 つあります。それらを A、B、C と呼びましょう。「A」は、メイン ビルドである B の特定のビルド シナリオを準備するだけです。C はシナリオをクリーンアップし、基本的に B を元の状態にリセットします。これらのプロジェクトを同じキューに設定し、プロジェクト B が失敗した場合を除いて、ほとんどの部分でこのプロセスをテストしました。これがその状況であり、以下で説明します。

<project name="A" queue="main">
    <publishers>
     <email status of build/>
      <forcebuild>
        <project>B</project>
      </forcebuild>
      <forcebuild>
        <project>C</project>
      </forcebuild>
       </publishers>
   <task>Prepares special scenario</task>
 </project>
 <project name="B" queue="main">
   <publishers>
   </publishers>
    <task>Builds main project</task>
 </project>
 <project name="C" queue="main">
   <publishers>
   </publishers>
    <task>Resets special scenario</task>
 </project>

シナリオ:

  1. プロジェクト 'A' が強制されるとプロジェクト B がビルドされ、B が成功するとプロジェクト C がビルドされます。これは正常に機能します。
  2. プロジェクト「A」が強制されるとプロジェクト「B」がビルドされ、B が失敗すると C がビルドされます。これも私の場合は問題ありません。
  3. プロジェクト B で 2 番目のシナリオとバグが修正された後。プロジェクト A がもう一度強制され、プロジェクト B の巡航ステータスが「修正済み」と表示された場合、プロジェクト C はビルドされません。これは問題ありませんか?

No.2 と No.3 の組み合わせが発生した場合、プロジェクト C がビルドされない理由を誰かが理解できますか? どんな助けや指示も歓迎します。

ありがとう。

4

2 に答える 2

1

テスト環境は、使い終わったら必ずクリーンアップする必要があります。プロジェクトCのプロジェクトトリガーを使用して、次のようなものを設定することをお勧めします。これにより、Aが成功した場合にCを常に実行できるようになります(Cでプロジェクトトリガーを変更することで変更できます)。

<project name="A" queue="main">
    <publishers>
     <email status of build/>
     <forcebuild>
       <project>B</project>
     </forcebuild>
   </publishers>
   <tasks>Prepares special scenario</tasks>
 </project>

 <project name="B" queue="main">
 ...
 </project>

 <project name="C" queue="main">
   <triggers>
     <projectTrigger project="A" />
   </triggers>
   <publishers />
   <tasks>Resets special scenario</tasks>
 </project>
于 2012-11-13T18:06:58.110 に答える
1

Aプロジェクトは、現在の状態のクリーンアップと新しいビルドの準備を担当できます。

たとえば、Bのビルドの途中で停電があったとします。この構成ではC、ビルド プロセスを実行できるように手動で強制する必要がありますか?

Aと同じタスクを実行する場合C、独自のタスクとして、これによりこの問題が解消され、あなたの問題も解消されると思います。

于 2012-11-13T07:01:53.567 に答える