Skip to content

Instantly share code, notes, and snippets.

@kad
Last active May 17, 2023 09:41
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save kad/4a5a8f669d4a4090b43be1f1c5461df3 to your computer and use it in GitHub Desktop.
Save kad/4a5a8f669d4a4090b43be1f1c5461df3 to your computer and use it in GitHub Desktop.
workaround for JENKINS-28447 in case of github trigger plugin.
// Reconfigure job to have Pipeline DSL configured inside job, instead of from scm.
// Put snippet below to pipeline text box
// Define additional job parameters:
// GITHUB_PROJECT: string, URL to your GitHub repository
// GITHUB_AUTH: string, credentials ID to use in case of private GitHub repository
node {
dir('pipeline_handover') {
checkout([$class: 'GitSCM',
branches: [[name: "origin-pull/$GITHUB_PR_NUMBER/$GITHUB_PR_COND_REF"]],
doGenerateSubmoduleConfigurations: false,
extensions: [],
submoduleCfg: [],
userRemoteConfigs: [
[credentialsId: "${GITHUB_AUTH}",
name: 'origin-pull',
refspec: "+refs/pull/$GITHUB_PR_NUMBER/*:refs/remotes/origin-pull/$GITHUB_PR_NUMBER/*",
url: "${GITHUB_PROJECT}"]]])
}
load 'pipeline_handover/Jenkinsfile'
}
// This part of example goes to Jenkins file inside your Git tree:
// Code below would checkout Git content in both scenarios for triggering builds
// (pull requests, push to branch) and share same Jenkinsfile
node('docker') {
stage 'Checkout own content'
dir(current_project) {
if (binding.variables.get("GITHUB_PR_NUMBER")) {
// we are building pull request
checkout([$class: 'GitSCM',
branches: [[name: "origin-pull/$GITHUB_PR_NUMBER/$GITHUB_PR_COND_REF"]],
userRemoteConfigs: [
[credentialsId: "${GITHUB_AUTH}",
name: 'origin-pull',
refspec: "+refs/pull/$GITHUB_PR_NUMBER/*:refs/remotes/origin-pull/$GITHUB_PR_NUMBER/*",
url: "${GITHUB_PROJECT}"]]])
} else {
checkout scm
}
}
// ....
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment