web-dev-qa-db-fra.com

Comment activer la scrutation SCM avec le plugin Jenkins Pipeline

Ceci est une question liée à Comment faire fonctionner l'interrogation SCM avec le plugin Jenkins Workflow . Ce thread explique comment utiliser l'interrogation SCM dans un script de pipeline une fois L'interrogation SCM est activée, mais ne décrit pas comment activer l'interrogation SCM.

Par exemple, si vous souhaitez utiliser le plugin mulit-branch pipeline pour créer des travaux automatiquement à l'aide d'un fichier Jenkins, je ne connais aucun moyen d'activer l'option "Poll SCM" dans le travail. Cela rend difficile la mise en place d'environnements à la demande, tels que la création d'un conteneur de menu fixe dans lequel les tâches sont configurées depuis le début. Parce que vous devez vous connecter à Jenkins, accéder à la configuration et sélectionner l'option "Poll SCM" une fois le conteneur démarré. Cloudbees propose un plugin template pour vous aider à résoudre ce problème.

Cependant, Jenkins n’a pas accès à cette version gratuite. Existe-t-il une solution de contournement ou une solution pour les utilisateurs de la version gratuite de Jenkins?

12
mdo123

si vous souhaitez utiliser le plug-in de pipeline multi-branches pour créer des travaux automatiquement à l'aide d'un fichier Jenkins, il n'y a pas moyen, à ma connaissance, d'activer l'option "Poll SCM" dans le travail.

Aucune n'est nécessaire. Les projets multibranches ont un intervalle d'interrogation configurable pour l'indexation de branche dans son ensemble, qui sert également de déclencheur de construction par branche et reçoit également les Webhooks automatiquement.

19
Jesse Glick

Pour répondre à la question sur l’activation de l’interrogation SCM, procédez comme suit.

À l'aide du générateur de syntaxe de pipeline et des "propriétés: Définir les propriétés du travail", vous pouvez générer les éléments suivants qui activeront la scrutation SCM.

properties([pipelineTriggers([pollSCM('H * * * *')])])

Cependant, comme le souligne Jesse Glick pour les pipelines multibranches, il n'est pas nécessaire d'activer la scrutation SCM.

9
pdross

Je pense au même problème.

Si vous utilisez un service Git en ligne comme Github ou Bitbucket, je pense que vous pourriez utiliser leurs fonctionnalités Webhooks pour le résoudre. Je n'ai pas encore été en mesure de tester la solution, mais cela devrait fonctionne.

Dans votre configuration Multibranch Pipeline, activez l'option Trigger builds remotely.

Ensuite, vous devez activer votre compte Web Github/Bitbucket sur votre référentiel, en utilisant le chemin (comme décrit dans la configuration de Jenkins): JENKINS_URL/job/test/build?token=TOKEN_NAME

2
tvdw

Pour que mon Bitbucket se connecte au hook Web, je devais ajouter ce qui suit à mon pipeline déclaratif:

pipeline {
    stages {
        stage('Initialize') {
            steps {
                //enable remote triggers
                script {
                    properties([pipelineTriggers([pollSCM('')])])
                }
                //define scm connection for polling
                git branch: BRANCH_NAME, credentialsId: 'my-credentials', url: 'ssh://[email protected]/stash/my-project.git'
            }
        }
    }
}

Cela permet de reconstruire une branche, sans analyser l'intégralité de multibranchiverse . Cela est particulièrement utile lorsque vous utilisez des projets multibranches Bitbucket Project/Github Team. Là, une analyse peut prendre quelques minutes, une fois que vous avez quelques pensions/branches.

En étant directement connecté à la branche, vous pouvez obtenir un résultat de construction beaucoup plus rapidement et sans aucun effet secondaire.

NB: Dans un pipeline déclaratif, l'appel de propriétés doit être encapsulé par un script-block.

0
Rick Moritz