0

単一のJenkinsジョブで、ascheduleとを指定してビルドをトリガーできpollingます。ただし、どちらの場合も、ビルドがトリガーされ、ビルド後の手順として(PostBuild Taskプラグインを使用して)構成したデプロイ操作も発生します。ポーリングによって変更が検出されるたびにビルドが発生するようにしたいのですが、デプロイは指定したスケジュールに従ってのみ実行する必要があります。

1つのジョブでそれを行うことは可能ですか、それとも2つの別々のジョブを構成する必要がありますか?

4

2 に答える 2

1

2つのジョブで行う方がクリーンになります。ただし、本当に 1 つのジョブに含める必要がある場合は、Jenkins プラグインを組み合わせて使用​​できます。

  • EnvInject プラグインを使用して、BUILD_CAUSE および/または BUILD_CAUSE_SCHEDULED* 環境変数を公開します。(これは必要ない場合があります。デフォルトで Jenkins 構成内の Jenkins 変数を参照できる場合があります)
  • BUILD_CAUSE == SCHEDULED の場合、または BUILD_CAUSE_SCHEDULED == true の場合、Flexible Publish プラグイン、ビルド後のアクションを使用して条件付き公開ステップを設定します。(1 つの条件をテストするだけです。) 次のように、Jenkins の式構文を使用する必要があることに注意してください。

    ${ENV,var="BUILD_CAUSE_SCHEDULED"}
    

* BUILD_CAUSE_SCHEDULED は実際の名前ではありません。ご自分で調べる必要があります。

于 2012-11-07T05:46:01.520 に答える
1

あなたはPostBuild Taskプラグインを使用していると言いました。これにより、コンソール ログで正規表現を実行して、タスクを実行するかどうかを決定できます。

スケジュールによって開始されたビルドStarted by timerは、ログの上部に表示されます。この式を PostBuild ステップの [Log Text] フィールドに追加するだけです。そこにいくつかの基準を既に使用している場合は、[追加] ボタンをクリックして別の [ログ テキスト] フィールドを追加し、その間に [AND] 演算子を使用します。

于 2012-11-07T15:07:26.660 に答える