我正在设置詹金斯职位,这些职位在Perforce中是流。这些流依赖于其他流(许多情况超过1个),我正在尝试动态地计算这些依赖关系并将它们设置在触发器语法上游作业中。
我能够对值进行硬编码并获取依赖项集。我有脚本块来找到依赖项。但是脚本块的作用域是阶段局部的,不能在触发器块中使用变量。从perforce查找任何流的父代的脚本块: 下面的块不起作用,因为perforce插件需要一个客户端工作空间,该工作空间不可用于stage块。但是此命令不需要任何工作空间即可工作。它可以独立于工作空间工作。
def p4 = p4(credential: 'testuser', workspace: manualSpec(charset: 'none', cleanup: false, name: 'jenkins-${NODE_NAME}-${JOB_NAME}-${EXECUTOR_NUMBER}', pinHost: false, spec: clientSpec(allwrite: false, backup: true, changeView: '', clobber: true, compress: false, line: 'LOCAL', locked: false, modtime: false, rmdir: false, serverID: '', streamName: '', type: 'WRITABLE', view: '//depot/Project1/... //jenkins-${NODE_NAME}-${JOB_NAME}-${EXECUTOR_NUMBER}/...')))
def parent = p4.run('streams', '-TParent', '//depot/test_stream')
echo "Parent bnanch: ${parent.Parent}"
我想在运行脚本块后动态设置触发器。