在 Jenkins 中使用声明式 linter

Omr*_*mri 6 jenkins jenkins-cli jenkins-pipeline

我一直在尝试使用Command-line Pipeline Linter

我可以在服务器本地使用这个声明式 linter 吗?

我尝试运行:

declarative-linter < Jenkinsfile
Run Code Online (Sandbox Code Playgroud)

并得到:

-bash: declarative-linter: command not found
Run Code Online (Sandbox Code Playgroud)

我需要安装此命令还是应该在安装管道插件后自动安装?

请指教。

Mat*_*ard 2

存在与 交互的三种高级方法declarative-linter。您请求的特定集是 CLI,以及服务器本身的特定子集。然后,您引用的文档引用了CLI 文档,以了解如何使用 Jenkins CLI 形成命令。

一般来说,服务器上的命令如下所示:

java -jar jenkins-cli.jar [-s JENKINS_URL] [global options...] command [command options...] [arguments...]
Run Code Online (Sandbox Code Playgroud)

在服务器上运行时,可以使用 localhost 作为 URL。完整路径jenkins-cli也有助于确保安全(下面显示的示例适用于 RedHat 系列)。https请注意,如果您使用服务器证书,则应该使用下面的内容。

java -jar /var/cache/jenkins/war/WEB-INF/jenkins-cli.jar -s http://localhost:8080/ [global options...] command [command options...] [arguments...]
Run Code Online (Sandbox Code Playgroud)

现在我们替换特定于declarative-linter. 请注意,我们使用的是 Linux 特有的 stdin 语法。

java -jar /var/cache/jenkins/war/WEB-INF/jenkins-cli.jar -s http://localhost:8080/ declarative-linter < /path/to/Jenkinsfile
Run Code Online (Sandbox Code Playgroud)

Jenkinsfile这将允许通过Jenkins 服务器上的本地 linting jenkins-cli。请注意,如果您需要进行身份验证,则需要在Jenkins URL 参数前后替换命令部分中的-auth username:password或。-i /path/to/ssh_key[global options...]declarative-linter