Il semble que GitHubPullRequestBuilder n'est pas compatible avec les travaux de pipeline Jenkins v2.0.
Comment configurer un travail de pipeline pour qu'il soit déclenché à partir d'un événement de demande d'extraction GitHub?
La documentation sur ce sujet est rare et je ne trouve aucun exemple de cela. Ou est-il préférable de créer un lien Web dans GitHub pour déclencher le job de pipeline sur l'événement PR?
Le moyen le plus simple d'utiliser Pipeline avec les requêtes GitHub consiste à placer le script dans votre référentiel sous le nom Jenkinsfile
, puis à installer le plug-in GitHub Branch Source. Documentation
J'ai eu le même problème. Voici ce qui a fonctionné pour moi
Pré-demande
Sur Github
YourJenkinsURL/github-webhook/
pipeline { agent quelconque étapes { stage ('Test') { pas { echo 'Hello World ...' } } } }
Sur Jenkins
+refs/pull/*:refs/remotes/Origin/pr/*
${sha1}
C'est tout. Vous êtes prêt. La création d'un PR sur une branche principale de votre référentiel devrait maintenant déclencher votre travail de pipeline Jenkins
Quelques observations
Le flux en un mot peut aller comme ceci:
Vous créez votre pipeline en tant que code et vous l'enregistrez dans un fichier appelé Jenkinsfile
au répertoire racine de votre projet. Ce code devrait décrire comment votre projet sera construit. Voir ici pour des exemples: https://jenkins.io/doc/pipeline/examples/
Ensuite, vous devez créer un nouvel élément "Projet de pipeline multibranches" dans votre Jenkins. Vous devez configurer ceci de manière à analyser votre rapport de l’étape 1.
Désormais, chaque fois que vous aurez une nouvelle agence de relations publiques ouverte sur votre dépôt Étape 1, celle-ci sera extraite et construite selon les instructions de Jenkinsfile qui l’accompagnent. Vous pouvez définir davantage de conditions sur ce qui est construit et à quel moment si vous le souhaitez.
Remarques:
Exemple de documentation "Projet de pipeline Multibranch": https://jenkins.io/doc/book/pipeline-as-code/ (faites défiler jusqu'à Projets de pipeline Multibranch)
Gardez à l'esprit qu'obtenir le plugin pour créer un PR après avoir recommandé le PR ne fonctionne pas. Une discussion est en cours d’analyse ici: https://github.com/jenkinsci/gitlab-plugin/issues/298 Il existe des solutions de contournement (également décrites dans cette discussion), mais elles sont assez compliquées à installer.
Suivez les étapes ci-dessous pour déclencher le travail Jenkins automatiquement sur la demande Pull générée sur GitHub
Configuration du travail Jenkins
Téléchargez le déclencheur Webhook générique dans Jenkins
Configuration Git Hub sur Jenkins
7.Sélectionnez le déclencheur Webhook générique sur jenkins8. Configuration du déclencheur Webhook générique sur Jenkins et suivez l'étape 9
9.À l'issue de l'étape 7, le travail Jenkins sera déclenché sur PullRequest 10. L'étape 8 est requise pour obtenir des informations de Pull Request Payload11. Configuration de la branche dans Generic Webhook Trigger pour obtenir les détails de la branche à partir de Pull Request
Merci