debugMinor
Jenkins Pipeline and stash Pull Request Builder not working on PR create/update
Viewed 0 times
pullupdatecreatebuilderjenkinsrequeststashworkingandnot
Problem
Below is the requirement needed to achieve using the Jenkins Pipeline and i am new bee into Jenkins Pipeline.
Bitbucket the user creates a pull request.
Jenkins build. Thereby we would like to get only the build result of
the code checked in for the pull request.
automatically for real continuous integration.
Used Stash Pull Request Builder and stash Notifier for the above process which is working for Normal Freestyle Project.
We need to migrate the similar functionality using Jenkins pipeline, So have created the jenkins job as below.
The pipeline script to checks out the PR branch and trigger build is as below
Though i have done the above configuration when i create/update the PR, the build is not automatically triggered in jenkins. I guess the notification from stash to jenkins did not happen because we specify `"ori
- After completing development work and pushing his changes to
Bitbucket the user creates a pull request.
- In order to approve a pull request we require at least one successful
Jenkins build. Thereby we would like to get only the build result of
the code checked in for the pull request.
- When a pull request is created/updated Jenkins shall be triggered
automatically for real continuous integration.
- The build result shall be reported back to Bitbucket.
Used Stash Pull Request Builder and stash Notifier for the above process which is working for Normal Freestyle Project.
We need to migrate the similar functionality using Jenkins pipeline, So have created the jenkins job as below.
The pipeline script to checks out the PR branch and trigger build is as below
node {
stage('Checkout') {
checkout(
[
$class: 'GitSCM',
extensions: [
[$class: 'CleanCheckout'],
],
branches: [
[name: '']
],
userRemoteConfigs:
[[
credentialsId: 'id',
url: 'repourl.git'
refspec: ('+refs/pull-requests/*/from:refs/remotes/origin/pr/*/from'),
branch: ('origin/pr/${pullRequestId}/from')
]]
])
}
stage('Build') {
sh 'make'
}
stage('notify') {
step([$class: 'StashNotifier'])
try {
// Do stuff
currentBuild.result = 'SUCCESS'
} catch(err) {
currentBuild.result = 'FAILED'
}
step([$class: 'StashNotifier'])
}
}Though i have done the above configuration when i create/update the PR, the build is not automatically triggered in jenkins. I guess the notification from stash to jenkins did not happen because we specify `"ori
Solution
In groovy script, you need to reference environment variables in a different way than in bash.
So probably this line is causing trouble:
Try using:
So probably this line is causing trouble:
branch: ('origin/pr/${pullRequestId}/from')Try using:
branch: ('origin/pr/' + env.pullRequestId + '/from')Code Snippets
branch: ('origin/pr/${pullRequestId}/from')branch: ('origin/pr/' + env.pullRequestId + '/from')Context
StackExchange DevOps Q#1525, answer score: 3
Revisions (0)
No revisions yet.