2017-10-12 2 views
0

Existe-t-il un moyen de spécifier l'emplacement de la vérification en utilisant "agent" (pas "noeud") dans un fichier Jenkins?Spécifier l'emplacement de la caisse à l'aide de l'agent (pas de noeud)

pipeline { 
    agent { label 'my_label' } 
    stages { 
    stage('Checkout') { 
     steps { 
     // Dang. my_repo has already been checked out 
     dir('my_repo') { 
      checkout scm 
     } 
     } 
    } 
    } 
} 

Il semble si vous utilisez « noeud » vous avez la possibilité de le faire, mais je ne peux pas sembler trouver une façon de le faire avec « agent ».

Répondre

1

Si vous définissez skipDefaultCheckout(), vous pouvez extrayez votre SCM quand vous voulez:

pipeline { 
    agent { label 'my_label' } 
    options { 
    skipDefaultCheckout() 
    } 
    stages { 
    stage('Checkout') { 
     steps { 
     // SWEET! my_repo has not been checked out 
     dir('my_repo') { 
      checkout scm 
     } 
     } 
    } 
    } 
} 

Par ailleurs, certains des ajouts cimentaires offrent des options de caisse avancées qui vous permettent de faire la caisse dans un chemin différent. Cependant, sachez que si vous utilisez plusieurs agents, vous devrez effectuer la vérification manuellement chaque fois que vous utilisez un autre agent. Si PEUT utiliser le même espace de travail, mais il n'y a aucune garantie. Vous devriez toujours lancer la commande scm, juste au cas où ce n'est pas le cas.

+0

Génial! Je ne te connaissais pas faire ça! Je ne sais pas quel scénario justifie plusieurs agents, mais je ferai des recherches à ce sujet aussi Merci – grayaii

+1

Disons, par exemple, que vous avez un logiciel spécifique sur un agent ou peut-être que vous devez exécuter une partie de votre build ou test sur Windows et une partie sur Linux, puis vous pouvez spécifier différents agents pour chacun d'eux –

+0

Donc, cela a-t-il résolu votre problème? Si oui, j'apprécierais que vous puissiez marquer ceci comme la réponse acceptée. –