According to https://jenkins.io/doc/book/pipeline/development/#linter , one can check the syntax of a Jenkinsfile either using the CLI
java-jar jenkins-cli.jar declarative-linter < Jenkinsfile
or using the HTTP API:
curl -X POST -F "jenkinsfile=<Jenkinsfile" $JENKINS_URL/pipeline-model-converter/validate
Interestingly, though, the former (CLI) validates successfully Scripted Pipelines while the latter (HTTP) does not. Here is a trivial example of a Jenkinsfile:
The CLI output is
Jenkinsfile successfully validated.
while the HTTP api output is
Jenkinsfile content 'node {\n pwd\n}\n' did not contain the 'pipeline' step
I believe it's very convenient that the CLI can check Scripted Pipelines as well and it would be great if one could do it via the HTTP api as well! |