जेनकिन्स पाइपलाइन लाइनर और इसके आदेशों पर कुछ दस्तावेज यहां दिए गए हैं। क्या आपको एक प्रतिबद्ध होने से पहले मान्य करने की आवश्यकता है ? यदि नहीं, तो लाइनिंग कमांड को अपनी पाइपलाइन चलाने से पहले चलाना वास्तव में मामूली होगा, और यदि यह पास नहीं होता है तो बस विफल हो जाता है।
जेनकिन्स वास्तव में इसे चलाने से पहले कमांड लाइन से डिक्लेरेटिव पाइपलाइन को " लिंट " कर सकता है। यह जेनकिन्स सीएलआई कमांड का उपयोग करके या उचित मापदंडों के साथ HTTP POST अनुरोध करके किया जा सकता है। हमने लाइनर को चलाने के लिए SSH इंटरफ़ेस का उपयोग करने की सिफारिश की है । सुरक्षित कमांड-लाइन एक्सेस के लिए जेनकिन्स को ठीक से कॉन्फ़िगर करने के तरीके के विवरण के लिए जेनकिन्स सीएलआई प्रलेखन देखें ।
SSH के साथ CLI के माध्यम से लाइनिंग
# ssh (Jenkins CLI)
# JENKINS_SSHD_PORT=[sshd port on master]
# JENKINS_HOSTNAME=[Jenkins master hostname]
ssh -p $JENKINS_SSHD_PORT $JENKINS_HOSTNAME declarative-linter < Jenkinsfile
HTTP POST का उपयोग करके लाइनिंग curl
# curl (REST API)
# Assuming "anonymous read access" has been enabled on your Jenkins instance.
# JENKINS_URL=[root URL of Jenkins master]
# JENKINS_CRUMB is needed if your Jenkins master has CRSF protection enabled as it should
JENKINS_CRUMB=`curl "$JENKINS_URL/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,\":\",//crumb)"`
curl -X POST -H $JENKINS_CRUMB -F "jenkinsfile=<Jenkinsfile" $JENKINS_URL/pipeline-model-converter/validate
उदाहरण
नीचे क्रिया में पाइपलाइन लाइनर के दो उदाहरण हैं। यह पहला उदाहरण लिंटर के आउटपुट को दिखाता है जब इसे अमान्य पारित किया जाता है
Jenkinsfile
, जो कि agent
घोषणा का एक हिस्सा गायब है ।
Jenkinsfile
pipeline {
agent
stages {
stage ('Initialize') {
steps {
echo 'Placeholder.'
}
}
}
}
अमान्य जेनकिंसफाइल के लिए लाइनर आउटपुट
# pass a Jenkinsfile that does not contain an "agent" section
ssh -p 8675 localhost declarative-linter < ./Jenkinsfile
Errors encountered validating Jenkinsfile:
WorkflowScript: 2: Not a valid section definition: "agent". Some extra configuration is required. @ line 2, column 3.
agent
^
WorkflowScript: 1: Missing required section "agent" @ line 1, column 1.
pipeline }
^
इस दूसरे उदाहरण में, Jenkinsfile
लापता शामिल करने के लिए अद्यतन किया गया है any
पर agent
। लाइनर अब रिपोर्ट करता है कि पाइपलाइन वैध है।
Jenkinsfile
pipeline {
agent any
stages {
stage ('Initialize') {
steps {
echo 'Placeholder.'
}
}
}
}
मान्य जेनकिंसफाइल के लिए लाइनर आउटपुट
ssh -p 8675 localhost declarative-linter < ./Jenkinsfile
Jenkinsfile successfully validated.
java -jar jenkins-cli.jar [-s JENKINS_URL] [global options...] command [command options...] [arguments...]