2017-10-19 47 views
0

J'ai une configuration de pipeline Jenkins, et un fichier Jenkins qui a le contenu ci-dessous:Jenkins vérifie le repo ensemble SVN deux fois

pipeline { 
    agent any 

    stages { 

     stage('Build') { 
      steps { 
       echo 'Hey' 
      } 
     } 
    } 
} 

Un crochet après commettras déclenche le Jenkins construire avec succès, et je peux voir à partir de l'interface utilisateur de Jenkins. Il indique qu'il vérifie le repo à lire à partir du fichier Jenkins et qu'il stocke la commande dans le dossier [email protected] sur le serveur.

Checking out svn https://<svn_server>/svn/Test/Core into C:\Program Files (x86)\Jenkins\jobs\CI_Build\[email protected] to read JenkinsPipeline/Jenkinsfile 
Checking out a fresh workspace because C:\Program Files (x86)\Jenkins\jobs\CI_Build\[email protected] doesn't exist 
Cleaning local Directory . 

Une fois cette opération terminée, je fais un changement dans un fichier dans le repo et la construction déclenche par la poste engager crochet avec bonheur, mais il essaie de la caisse à nouveau la base de code entier dans un dossier appelé workspace. Je m'attendais à ce que le checkout se produise une fois et que l'option "Utiliser autant que possible la mise à jour SVN" se déclenche et ne fasse que mettre à jour les fichiers modifiés? Ou peut-être que j'ai une mauvaise logique?

version SVN - 1.9.7

Version Jenkins - 2,84

Répondre

1

Jenkins doit savoir ce qui est dans votre script de pipeline avant de savoir si elle extrayez votre code. Il est possible que votre pipeline dise de ne pas extraire le code, et que vous le définissiez dans un sous-répertoire et que vous activiez vous-même la vérification. Ou peut-être commander plusieurs repos à différents endroits. Jusqu'à ce que Jenkins voit votre fichier Jenkins, il ne peut pas savoir ce que vous voulez. Donc, il doit vérifier le repo une fois pour voir votre pipeline, puis de nouveau pour faire le travail. Avec git (et peut-être certaines versions d'autres plugins de repo), les checkouts légers ou clairsemés sont pris en charge, donc il ne saisit que le fichier jenkins plutôt que le repo entier. Je ne pense pas que ce soit une option supportée par SVN pour le moment.

+0

Cela a plus de sens maintenant. Merci beaucoup. – mac