繁体   English   中英

Jenkins Multibranch Pipeline Jenkinsfile检测启动作业的Git仓库

[英]Jenkins Multibranch Pipeline Jenkinsfile detect Git repo that launched job

到目前为止,我有一个多分支管道配置工作正常....

但是,除了git repo名称之外,每个存储库都具有完全相同的jenkins文件。

一个典型的jenkinsfile看起来像:

node('docker-slave') {
    withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'NEXUS', usernameVariable: 'NEXUS_USERNAME', passwordVariable: 'NEXUS_PASSWORD']]) {
        git url: 'git@bitbucket.org:myco/myprob.git', branch: env.branch_name, credentialsId: '08df8ab41de0', variable: 'CREDENTIALS'
        stage 'Test'
        sh 'env > env.txt'
        sh 'cat env.txt'
        sh 'make verify'
    }
}

我想做的是检测哪个git repo触发了构建,所以我不必在jenkinsfile中对其进行硬编码。

所以我想要的是将git行更改为(注意GIT_URL):

 git url: env.GIT_URL, branch: env.branch_name, credentialsId: '08df8ab41de0', variable: 'CREDENTIALS'

这使我更接近我最终的目标,即将我的Jenkins文件存储在一个公共位置,而不是将其复制到repo并将其repo修改为repo。

有任何想法吗?

谢谢phil

事实证明,在脚本中,以下代码正是我所需要的:

checkout sum

不需要git网址行....

所以最后代码看起来像:

node('docker-slave') {
     withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'NEXUS', usernameVariable: 'NEXUS_USERNAME', passwordVariable: 'NEXUS_PASSWORD']]) {
     checkout scm
     stage 'Test'
     sh 'make verify'
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM