Jenkins管道语法“p4sync”

时间:2016-09-19 23:35:03

标签: jenkins perforce jenkins-pipeline

我正在尝试在我的管道脚本中同步到Perforce,但是从documentation我看不到设置“工作空间行为”的方法,即使插件本身似乎有{{3 }}。

我希望“工作区”等同于我在UI中配置的“手动(自定义视图)”设置,如that capability所述。我需要将哪些参数传递给p4sync任务才能实现?

1 个答案:

答案 0 :(得分:9)

您需要使用完整的checkout DSL,p4sync DSL只是基本的。最简单的方法是使用代码段生成器(管道语法链接),从SCM列表中选择checkout: General SCM然后Perforce Software

然后,您就可以定义详细的视图。例如:

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/...'''
    ]
  ]
])