我正在尝试将Scripted Pipeline中的少数Jenkinsfile
转换为Declarative Pipeline。我在Jenkinsfile
:
ws("/path/to/dir") {
// do stuff
}
我想知道它究竟做了什么以及将它转换为Declarative Pipeline语法的正确方法是什么。
答案 0 :(得分:14)
node
分配一个新工作区。您可以使用它来确保没有其他任何因素干扰您运行所附步骤的磁盘上的位置。
node
步骤那么苛刻,因为dir
也会确保它与一个单独的执行者一起运行。dir
步骤更多的隔离,因为ws
不会像pipeline {
agent { label 'docker' }
stages {
stage('hot_stage') {
steps {
sh 'pwd'
ws('/tmp/hey') {
sh 'pwd'
}
}
}
}
}
那样确保文件系统上的隔离位置。您可以像脚本化一样在声明性管道中使用它:
+ 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
产生输出:
{{1}}
的引用: