diff --git a/services/web/Jenkinsfile b/services/web/Jenkinsfile index b73281d61e..51eb8cd614 100644 --- a/services/web/Jenkinsfile +++ b/services/web/Jenkinsfile @@ -30,9 +30,21 @@ pipeline { script { def relevantCommitHash if (env.CHANGE_BRANCH) { - echo "PR build detected. Jenkins checked out a merge commit: ${GIT_COMMIT}" - relevantCommitHash = sh(script: 'git rev-parse HEAD^1', returnStdout: true).trim() - echo "Found actual branch commit: ${relevantCommitHash}" + def commitExistsOnRemote = sh(script: "git branch --remotes --contains ${GIT_COMMIT}", returnStdout: true).trim() + if (commitExistsOnRemote) { + echo "PR build detected, but commit exists on remote. Using ${GIT_COMMIT}" + relevantCommitHash = "${GIT_COMMIT}" + } else { + def parentCommits = sh(script: 'git rev-parse HEAD^@', returnStdout: true).trim().split('\n') + if (parentCommits.size() >= 2) { + echo "PR build detected. Jenkins checked out a merge commit: ${GIT_COMMIT} (parents: ${parentCommits.join(', ')})" + relevantCommitHash = parentCommits[0] + echo "Using first parent (branch commit): ${relevantCommitHash}" + } else { + echo "WARN: PR build detected, but ${GIT_COMMIT} is neither a merge commit, nor does it exist on the remote." + relevantCommitHash = "${GIT_COMMIT}" + } + } } else { echo "Branch build detected. Using commit: ${GIT_COMMIT}" relevantCommitHash = "${GIT_COMMIT}"