昨天我的pullrequest工作失败,输出如下:
11:07:41 > git rev-parse origin/${sha1}^{commit}
11:07:41 > git rev-parse ${sha1}^{commit}
11:07:41 ERROR: Couldn't find any revision to build. Verify the repository and branch configuration for this job.
Run Code Online (Sandbox Code Playgroud)
我已经进行了调查,发现在财产$ {sha1}中没有任何东西.当我粘贴一个绝对路径来拉取请求构建器,如pr/341/merge而不是$ {sha1}时,构建工作正常.它可以是什么?
Git客户端插件1.9.0
GitHub API插件1.44
我在Jenkins上有一个多分支的声明性管道,该管道由我的Bitbucket云帐户中的回购事件触发,我希望它可以将结果报告给Bitbucket。
我的Jenkinsfile看起来如下:
pipeline {
agent any
stages {
stage('Prepare Env') {
steps {
bitbucketStatusNotify(buildState: 'INPROGRESS')
sh "npm i"
}
post {
success {
bitbucketStatusNotify(buildState: 'SUCCESSFUL')
}
failure {
bitbucketStatusNotify(buildState: 'FAILED')
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我发现,当Jenkins构建失败并通过消息向Bitbucket通知构建结果时,对拉取请求的第二次及所有连续提交都会导致出现这种情况java.lang.Exception: None or multiple repos。
这在某种程度上与日志中的第一行说:Fetching changes from 2 remote Git repositories。
但是,我实际上只有一个存储库,不知道为什么詹金斯将其识别为多个存储库。
如何使我的构建停止看到多个存储库并成功?
完整日志如下:
Branch event
Checking out git https://bitbucket.org/mycompany/myproject.git https://bitbucket.org/mycompany/myproject.git into /var/lib/jenkins/workspace/myproject_PR-48-TV7ILAHCKATC6ZK26DHNTXI6KKLEGO3RSNDKAL2363W5GU5TABFQ@script to read Jenkinsfile
> /usr/bin/git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from 2 remote Git repositories
> …Run Code Online (Sandbox Code Playgroud)