我一直在尝试使用Command-line Pipeline Linter。
我可以在服务器上本地使用此声明性linter吗?
我试过跑:
declarative-linter < Jenkinsfile
得到了:
-bash: declarative-linter: command not found
我是否需要安装此命令,或者应该在Pipeline插件安装后自动安装?
请指教。
有三种与declarative-linter
相互作用的高级方法。您请求的特定集是CLI,具有服务器本身的特定子集。您引用的文档然后引用the CLI documentation来阅读如何使用Jenkins CLI形成命令。
通常,服务器上的命令如下所示:
java -jar jenkins-cli.jar [-s JENKINS_URL] [global options...] command [command options...] [arguments...]
在服务器上运行时,可以使用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...]
现在我们用declarative-linter
特有的命令和参数替换。注意我们使用特定于Linux的stdin语法。
java -jar /var/cache/jenkins/war/WEB-INF/jenkins-cli.jar -s http://localhost:8080/ declarative-linter < /path/to/Jenkinsfile
这将允许通过Jenkins服务器上的Jenkinsfile
本地linting你的jenkins-cli
。请注意,如果需要进行身份验证,则需要在-auth username:password
之前和Jenkins URL的参数之后用命令的-i /path/to/ssh_key
部分替换[global options...]
或declarative-linter
。