我正在为我的项目运行詹金斯管道。 Jenkins从gitlab提取存储库,然后运行我的管道。 所以问题是当管道成功运行时,我想将B合并到gitlab上的A上。 这是我的Jenkinsfile,它当然不能满足我的需要,因为它给了我错误
合并:测试-我们无法合并
node {
try{
stage('Build'){
def mavenHome = tool 'Maven'
checkout scm
sh "mvn clean install"
}
stage('SonarQube') {
steps {
sh "mvn clean verify sonar:sonar -Dsonar.branch.name="+ env.BRANCH_NAME
}
}
stage('Merge with Dev') {
sh "git checkout dev"
sh "git pull gitlab dev"
sh "git merge test"
}
} catch(error){
currentBuild.result = "FAILED"
mail to: 'mail here',
subject: "Failed Pipeline: ${currentBuild.fullDisplayName}",
body: "Something is wrong with ${env.BUILD_URL}"
}
}
我想自动合并,没有合并请求。谢谢
答案 0 :(得分:0)
我找到了一种在管道成功时创建合并请求的方法,那就是使用API。好吧,它并没有完全实现我想要的功能(可能的话直接合并分支),但是到目前为止已经足够了(在gitlab中自动创建合并请求)。 这是jenkinsfile的最后阶段
stage('Merge with Dev') {
sh 'curl --request POST --header "PRIVATE-TOKEN: APITOKENHERE" "GITURL/api/v4/projects/PROJECTID/merge_requests?source_branch='+env.BRANCH_NAME+'&target_branch=A&title='+env.BRANCH_NAME+'ToA"'
}