Jenkinsfile配置Git Plugin无法拉取仓库分支问题求助
各位Jenkins大佬好,最近在配置流水线拉取GitHub代码时遇到了个棘手的问题,想请教下大家的解决方案。
我原本的需求是:通过Jenkins的Git插件拉取代码,并且动态加载触发push事件的源分支,而不是固定死某个分支。一开始我是通过Jenkins UI来配置仓库URL、凭证(后来改用了公开仓库,凭证其实可以不用),并在「Branch Specifier」字段指定分支,这时候GitHub的push webhook能正常触发流水线,也能正确拉取对应分支的代码。
但当我去掉UI里的这些Git配置,改成在Jenkinsfile里直接写代码配置后,流水线就直接报错了。我用的Jenkinsfile代码如下(仓库是公开的,无需凭证):
checkout scmGit( branches: [[name: 'my-branch']], userRemoteConfigs: [[url: 'https://github.com/jenkinsci/ws-cleanup-plugin']] )
Jenkins控制台输出的错误日志是:
Started by GitHub push by alisial45
Checking out git into /var/lib/jenkins/workspace/Sample Pipeline for webhooks@script/80b99c2f5bbf8b755643e9680374e300a46ad183dd90018b5a9bfe0459d1e324 to read Jenkinsfile
Seen 0 remote branches
/usr/bin/git show-ref --tags -d # timeout=10
ERROR: Couldn't find any revision to build. Verify the repository and branch configuration for this job.
ERROR: Maximum checkout retry attempts reached, aborting
Finished: FAILURE
我现在的疑问是:
- 为什么写死分支名都会报错找不到分支?明明仓库里这个分支是存在的。
- 要实现动态拉取触发push事件的分支,正确的Jenkinsfile配置应该是怎样的?
麻烦各位大佬帮我看看问题出在哪,谢谢啦!
备注:内容来源于stack exchange,提问作者Musharraf Ul Hasnain

