6 votes

Comment définir un dossier d'espace de travail spécifique pour les projets de pipeline multibranches de Jenkins ?

J'ai un outil externe qui doit être appelé en tant que build-step dans un de mes jobs Jenkins. Malheureusement, cet outil a quelques problèmes avec les commandes de citation pour éviter les problèmes avec les espaces dans le chemin qui est appelé à partir.

Jenkins est installé dans C:\Program Files (x86)\Jenkins . C'est pourquoi j'ai des difficultés à ce que Jenkins appelle l'outil externe.

Ce que j'ai essayé, c'est de définir le "répertoire racine de l'espace de travail" dans Jenkins->configuration comme suit C:\jenkins_workspace afin d'éviter les espaces blancs. Cela fonctionne pour les projets Freestyle mais mon projet Multibranch Pipeline est toujours vérifié et construit sous C:\Program Files (x86)\Jenkins\workspace .

Une solution consisterait à déplacer l'ensemble de l'installation de Jenkins vers, par exemple, l'adresse suivante C:\jenkins . Je voudrais éviter cela. Existe-t-il un moyen approprié de dire aux tâches de Jenkins Pipeline d'utiliser également le "répertoire racine de l'espace de travail" ?

Merci pour toute aide

18voto

burnettk Points 6712

Le site ws L'instruction définit l'espace de travail pour les commandes qu'elle contient. Pour les pipelines déclaratifs, c'est comme ça :

ws("C:\jenkins") {
  echo "awesome commands here instead of echo"
}

Vous pouvez également appeler un script pour construire le customWorkspace à utiliser :

# if the current branch is master, this helpfully sets your workspace to /tmp/ma
partOfBranch = sh(returnStdout: true, script: 'echo $BRANCH_NAME | sed -e "s/ster//g"')
path = "/tmp/${partOfBranch}"
sh "mkdir ${path}"
ws(path) {
  sh "pwd"
}

vous pouvez également la définir de manière globale en utilisant l'option agent (généralement en haut de la page pipeline ), en l'appliquant à un node à ce niveau :

pipeline {
  agent {
    node {
      label 'my-defined-label'
      customWorkspace '/some/other/path'
    }
  }
  stages {
    stage('Example Build') {
      steps {
        sh 'mvn -B clean verify'
      }
    }
  }
}

Un autre node Une instruction ultérieure pourrait l'annuler. Recherchez customWorkspace à l'adresse https://jenkins.io/doc/book/pipeline/syntax/ . Vous pouvez également l'utiliser avec le docker y dockerfile des instructions.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X