如何在PR中检出源分支的Jenkinsfile

时间:2018-02-14 11:31:56

标签: git jenkins bitbucket jenkins-pipeline

跨分支的Jenkinsfile是不同的,我想在pull请求的源分支中执行Jenkins文件。

我正在使用Bitbucket Jenkins插件来完成它。

我尝试在配置中使用两个变量。但都失败了。

  • $ {sourceBranch}

    [BFA] Scanning build for known causes...
    [BFA] No failure causes found
    [BFA] Done. 0s
    hudson.plugins.git.GitException: Command "git fetch --tags --progress origin +refs/heads/${sourceBranch}:refs/remotes/origin/${sourceBranch} --prune" returned status code 128:
    stdout: 
    stderr: fatal: Couldn't find remote ref refs/heads/${sourceBranch}
    
  • $ {GIT_BRANCH}

    [BFA] Scanning build for known causes...
    [BFA] No failure causes found
    [BFA] Done. 0s
    hudson.plugins.git.GitException: Command "git fetch --tags --progress origin +refs/heads/${GIT_BRANCH}:refs/remotes/origin/${GIT_BRANCH} --prune" returned status code 128:
    stdout: 
    stderr: fatal: Couldn't find remote ref refs/heads/${GIT_BRANCH}
    

请告诉我可以指向传入webhook中拉取请求的源分支的变量。

1 个答案:

答案 0 :(得分:0)

使用Bitbucket branch source plugin,这可以毫不费力地运作。只需将您的Bitbucket项目添加为Jenkins中的作业,它会扫描所有存储库,包括所有分支和拉取请求,并创建相应的作业。无需使用这些变量。

如果你想使用另一个分支的Jenkins文件,你需要通过改变那个改变该分支中Jenkinsfile的提交来从那里复制它:

git cherry-pick <HASH>