6
我試圖在管道腳本中同步到Perforce,但是從documentation我沒有看到設置「工作空間行爲」的方法,即使插件本身似乎有that capability。「p4sync」的Jenkins管道語法
我希望「工作區」等同於「手動(自定義視圖)」設置,我可以按照here所述在UI中進行配置。我需要傳遞什麼參數到p4sync
任務才能實現?
我試圖在管道腳本中同步到Perforce,但是從documentation我沒有看到設置「工作空間行爲」的方法,即使插件本身似乎有that capability。「p4sync」的Jenkins管道語法
我希望「工作區」等同於「手動(自定義視圖)」設置,我可以按照here所述在UI中進行配置。我需要傳遞什麼參數到p4sync
任務才能實現?
您將需要使用完整的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/...'''
]
]
])
推測這會使整個視圖發生同步。有沒有辦法將指定映射文件與要檢出的文件集分開?例如 - 我們有很多大型倉庫,每個項目都知道它需要什麼。所以如果我們可以指定一個簡單的高級映射,我們可以讓構建進行同步。否則,我們要麼過多地映射+同步,要麼根據項目映射+同步 - 復制信息並增加維護。 (註釋5分鐘規則) –
使用ManualWorkspace時,視圖(map + sync)是唯一的,您可以在流水線中添加多個「checkout」步驟或將一些代理委派給Groovy庫。請記住,您必須使用不同的工作區名稱來執行多個「結帳」步驟。 –
在'項目'環境中,數據流可能會更好,因爲每個孩子都會繼承父級的視圖,從而節省複雜映射的重複。 Jenkins'p4-plugin'支持ManualWorkspaceImpl和StreamsWorkspaceImpl中的流,具體取決於您需要多少控制。 –