web-dev-qa-db-fra.com

Que fait un bloc ws () dans Jenkins?

J'essaie de convertir quelques Jenkinsfile de Pipeline Scripté en Pipeline Déclaratif . J'ai un bloc comme celui-ci dans un Jenkinsfile:

ws("/path/to/dir") {
    // do stuff
}

Je me demande ce que cela fait exactement et quelle est la bonne façon de le convertir en syntaxe Declarative Pipeline.

12
Eugene Yarmash

ws alloue un nouvel espace de travail. vous l'utiliseriez pour vous assurer que rien d'autre n'interfère avec l'emplacement sur le disque où vous exécutez les étapes ci-jointes.

  • ce n'est pas aussi lourd que l'étape node, puisque node s'assurera également qu'elle sera exécutée avec un exécuteur séparé.
  • cela fournit plus d'isolement que l'étape dir, car dir n'assurera pas un emplacement isolé sur le système de fichiers comme le fera ws.

vous pouvez l'utiliser dans un pipeline déclaratif de la même manière que scripté:

pipeline {
  agent { label 'docker' }
  stages {
    stage('hot_stage') {
      steps {
        sh 'pwd'
        ws('/tmp/hey') {
          sh 'pwd'
        }
      }
    }
  }
}

produit une sortie:

+ pwd
/opt/jenkins/workspace/tool_jenkins2-test_master-R4LIKJR63O6POQ3PHZRAKWWWGZZEQIVXVDTM2ZWZEBAWE3XKO6CQ
[Pipeline] ws
Running in /tmp/hey
[Pipeline] {
[Pipeline] sh
[hey] Running Shell script
+ pwd
/tmp/hey

les références:

15
burnettk