我有一个与我同步的Jenkins2管道:
p4sync charset: 'none',
stream: myStream,
format: clientName,
populate: [$class: 'ForceCleanImpl', have: true, pin: '', quiet: true]
其中myStream
是传递给Jenkins构建作业的参数。
我们确实拥有包含几GB数据的流,对于所有这些数据,我只对一个只有几MB的特定子目录感兴趣。
有没有办法将客户端视图缩小到任何传入流的单个子目录?
答案 0 :(得分:2)
正如我在第一个答案的评论中提到的那样,虽然您可以使用经典的软件仓库视图从流库中获取内容,但如果从其他位置导入文件,则会遇到问题。
处理此问题的正确方法是使用Perforce的Virtual Streams,它允许您制作过滤后的视图。
其中一个好处是您的流定义和虚拟流在同一个地方定义,而不是冒着更改流而又忘记更改Jenkins配置的风险
答案 1 :(得分:0)
基本上使用Jenkins Pipeline Syntax for "p4sync"的语法可以正常工作:
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/...'''
]
]
])