Déclenchement du flux de production sur GitHub push-Pipeline plugin-Multibranch configuration

nous utilisons le plugin pipeline avec la configuration multibranch pour notre CD. Nous avons vérifié dans le fichier Jenkinsfile qui fonctionne hors git.

git url: "$url",credentialsId:'$credentials'

le travail fonctionne bien, mais ne se déclenche pas automatiquement quand un changement est poussé sur github. J'ai mis en place les crochets web GIT correctement.

fait intéressant, quand je vais dans une branche du travail multibranch et que je clique sur "view Configuration", je vois que le "Build quand un changement est poussé sur Github" n'est pas vérifié. Il n'y a aucun moyen de vérifiez-le car je ne peux pas modifier la configuration de la tâche (puisqu'elle prend de parent) et la même option n'est pas présente dans parent.

Toutes les idées de comment résoudre ce problème?

23
demandé sur Punit Agrawal 2016-03-03 22:58:49

5 réponses

j'ai trouvé un moyen de cocher la case "lorsqu'un changement est poussé vers Github".

Cette ligne a fait l'affaire:

properties([pipelineTriggers([[$class: 'GitHubPushTrigger'], pollSCM('H/15 * * * *')])])

je pense que le bureau de vote est nécessaire pour le faire fonctionner. Ce serait bien si aucun sondage n'est nécessaire.

Voici un Jenkinsfile exemple avec cette implémentation:

#!/usr/bin/env groovy

node ('master'){
    stage('Build and Test') {
        properties([pipelineTriggers([[$class: 'GitHubPushTrigger'], pollSCM('H/15 * * * *')])])
        checkout scm
        env.PATH = "${tool 'Maven 3'}/bin:${env.PATH}"
        sh 'mvn clean package'
    }
}
4
répondu Max 2016-09-18 17:29:21

si vous utilisez Stash par exemple, vous pouvez enregistrer un WebHook Post-Receive où vous devez insérer votre formulaire D'URL Jenkins comme : http://jenkinsHost:9090/git/notifyCommit?url=ssh://git@gitHost:1234/test.git

dans votre travail de jenkins, vous devez mettre au moins le déclencheur de construction "Poll SCM". Et fixe l'heure du scrutin à E. g 5 minutes. Cela permet également l'indexation automatique des branches pour votre configuration de projet multibranch.

1
répondu mrkernelpanic 2016-05-11 13:52:40

le fait de recourir au sondage ajoute de la latence - le temps qu'il faut pour qu'une construction commence et termine de rendre un résultat.

il m'a semblé que les plugins de base ont un faible niveau d'abstraction, donc j'ai commuté vers le Github Organisation Folder plugin, qui dépend de chacun d'eux et met en place un crochet d'organisation pour déclencher les constructions de branches et/ou les demandes pull.

1
répondu giorgiosironi 2016-06-20 10:47:50

Avant de commencer, je tiens à souligner que je n'avais aucune expérience précédente avec Jenkins, donc il pourrait y avoir un tas de meilleures solutions.

Ce que je voulais obtenir en un mot:

  • Après chaque pression fait à un Bitbucket repo(test2), sur chaque branche,

    de traction et de construire un autre Bitbucket repo(test1), à partir d'une identique

    nom de la branche et juste après cela, construisez test2 en utilisant test1 comme

    dépendance.

Comment j'ai réussi à atteindre?

  • j'ai commencé un nouveau travail avec le type 'Multibranch Pipeline'
  • j'ai ajouté le fichier Jenkinsfile suivant à test2:

pipeline {
    agent any
    stages {
        stage('build') {
            steps {
                dir('test1') {
                    git branch: BRANCH_NAME, url: 'git@bitbucket.org:user/test1.git', credentialsId: 'credentials_id'
                }
                sh('build_process')
            }
        }
    }
}
  • j'ai rencontré le problème que vous ne pouvez pas mettre en place un crochet Bitbucket pour les pipelines

  • J'ai ajouté Bitbucket Branch Source Plugin à Jenkins

  • je Bitbucket sélectionné à 'Sources de branche' lors de la mise en place de l'emploi

  • j'ai ajouté des informations d'identification et mis un crochet pour Auto-inscription webhook

  • sous "Scan Multibranch Pipeline Triggers" , J'ai mis un crochet à exécuter périodiquement si ce n'est pas le cas, avec un intervalle de 1 min

  • j'ai ajouté un webhook à mon Bitbucket repo

  • j'ai mis à jour tous mes plugins, J'ai redémarré Jenkins et il est prêt à aller

autres plugins que j'ai installés: Bitbucket Plugin, Pipeline plugin. Espérons que cela aide pour quelqu'un, j'ai réussi à le résoudre de cette façon après des heures de lutte sans le Plugin Source Bitbucket Branch.

0
répondu f4z3k4s 2017-03-10 15:05:47
node{
stage('Build and Test') {
    properties([pipelineTriggers([[$class: 'GitHubPushTrigger'], pollSCM('* * * * *')])])
    checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'xxx-xxx-xxxx[your credentails Id]', url: 'https://github.com/git']]])
    echo 'Build and Test has been done'
}

}

-2
répondu maruthi 2018-06-13 07:42:39