2016-09-19 28 views
6

私はパイプラインスクリプトでPerforceに同期しようとしていますが、documentationから、プラグイン自体が持っているように見えても "ワークスペースの動作"を設定する方法はありませんthat capability"p4sync"のJenkinsパイプライン構文

「ワークスペース」をhereのようにUIで設定できる「手動(カスタム表示)」設定と同じにします。これを達成するために、どのようなパラメータをp4syncタスクに渡す必要がありますか?

答えて

8

checkout DSLを使用する必要があります。p4sync DSLは基本的なものです。最も簡単な方法は、スニペットジェネレータ(パイプライン構文リンク)を使用し、checkout: General SCM、次にPerforce SoftwareをSCMリストから選択することです。

詳細ビューを定義することができます。例:

checkout([ 
    $class: 'PerforceScm', 
    credential: 'phooey1666', 
    populate: [ 
    $class: 'AutoCleanImpl', 
    delete: true, 
    modtime: false, 
    pin: '', 
    quiet: true, 
    replace: true 
    ], 
    workspace: [ 
    $class: 'ManualWorkspaceImpl', 
    charset: 'none', 
    name: 'jenkins-${NODE_NAME}-${JOB_NAME}', 
    pinHost: false, 
    spec: [ 
     allwrite: true, 
     clobber: false, 
     compress: false, 
     line: 'LOCAL', 
     locked: false, 
     modtime: false, 
     rmdir: false, 
     streamName: '', 
     view: ''' 
     //depot/... //jenkins-${NODE_NAME}-${JOB_NAME}/... 
     -//depot/tests/... //jenkins-${NODE_NAME}-${JOB_NAME}/tests/...''' 
    ] 
    ] 
]) 
+0

おそらく、これはビュー全体を同期します。チェックアウトするファイルのセットからマッピングを指定する方法はありますか?たとえば、私たちには多くの大きなデポがあり、各プロジェクトは必要なものを知っています。したがって、シンプルな高レベルのマッピングを指定することができれば、ビルドを同期させることができます。それ以外の場合は、+ syncをマップするか、プロジェクトに基づいて地図を同期させる - 情報を複製し、メンテナンスを増やす。 (コメント5分ルール) –

+0

ManualWorkspaceでは、View(map + sync)のみがあなたのパイプラインに複数の 'checkout'ステップを追加したり、いくつかをGroovyライブラリに委譲することができます。複数の 'checkout'ステップには、異なるワークスペース名を使用する必要があることを覚えておいてください。 –

+0

ストリームは、それぞれの子が親からのビューを継承するため、複雑なマッピングの重複を避けるため、「プロジェクト」環境でうまく動作する可能性があります。 Jenkinsの 'p4-plugin'は、必要なコントロールの量に応じて、ManualWorkspaceImplとStreamsWorkspaceImplのストリームをサポートします。 –

関連する問題