没有这种DSL方法的“阶段”
我正在尝试为詹金斯创建我的第一个Groovy脚本:
在这里查看https://jenkins.io/doc/book/pipeline/之后,我创建了这个:
node { stages {
stage('HelloWorld') {
echo 'Hello World'
}
stage('git clone') {
git clone "ssh://git@mywebsite.com/myrepo.git"
}
}
}
但是,我得到:
java.lang.NoSuchMethodError: No such DSL method "stages" found among steps
我想念什么?
另外,如何在不以纯文本形式编写密码的情况下将我的凭据传递到Git存储库?
回答:
你感到困惑和混合Scripted Pipeline
使用Declarative
Pipeline,完全的差异在这里看到。但简短的故事:
- 是管道DSL的新扩展(基本上是只有一步的管道脚本,带有参数的管道步骤(称为指令),这些指令应遵循特定的语法。这种新格式的要点是更严格,因此对于管道新手来说应该更容易,允许图形编辑等等。
- 是高级需求的后备。
因此,如果我们查看您的脚本,则首先打开一个node
步骤,该步骤来自脚本化管道。然后使用stages
,它是中pipeline
定义的步骤的指令之一declarative
pipeline。因此,您可以例如编写:
pipeline { ...
stages {
stage('HelloWorld') {
steps {
echo 'Hello World'
}
}
stage('git clone') {
steps {
git clone "ssh://git@mywebsite.com/myrepo.git"
}
}
}
}
因此,如果您想使用declarative pipeline
它,那是必经之路。
如果要scripted pipeline
,那么您可以编写:
node { stage('HelloWorld') {
echo 'Hello World'
}
stage('git clone') {
git clone "ssh://git@mywebsite.com/myrepo.git"
}
}
例如:跳过阶段块。
以上是 没有这种DSL方法的“阶段” 的全部内容, 来源链接: utcz.com/qa/424000.html