没有这种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

回到顶部