【发布时间】:2017-04-03 13:18:53
【问题描述】:
我是 Jenkins 的新手,我在 Bitbucket 中有 4 个 repo,比如 A、B、C、D。 我必须获取 A、B 和 C 存储库,使用 gradle build 构建它们,这将产生战争。 现在我必须在 D\warsFolder 中复制那些战争 我已经创建了 Multibranch 管道并生成了从 git 获取 A、B 和 C 并构建它们的管道语法。好像是这样的
node {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'A']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'id', url: 'http://.../A.git']]])
dir('A') {
bat 'gradle build -i --info --stacktrace --debug'
}
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'B']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'id', url: 'http://.../B.git']]])
dir('B') {
bat 'gradle build -i --info --stacktrace --debug'
}
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'C']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'id', url: 'http://.../C.git']]])
dir('C') {
bat 'gradle build -i --info --stacktrace --debug'
}
}
将上述脚本添加到我放在 A repo 中的 Jenkinsfile 中。
现在我创建了一个多分支管道 Fetch_all 并在分支源 -> 单个存储库和分支 -> 存储库 URL 中添加了 http://.../A.git(其中包含 Jenkinsfile)。 到目前为止一切正常,我可以获取源代码并构建它们。
我创建了 Freestyle 的新工作,在 Source Code Management -> Git -> Repository URL 将是 http://.../D.git。 我正在尝试复制 Fetch_all 管道中生成的战争,但在 Build -> Copy artifacts from another project 项目名称不接受 Multibranch 管道。它会抛出类似
的错误ERROR: Unable to find project for artifact copy:
This may be due to incorrect project name or permission settings; see help for project name in job configuration.
感谢任何帮助。
【问题讨论】:
标签: jenkins jenkins-plugins jenkins-pipeline