জেনকিনস পাইপলাইন লিন্টার এবং এর আদেশগুলি সম্পর্কে এখানে কিছু ডকুমেন্টেশন রয়েছে। প্রতিশ্রুতি দেওয়ার আগে আপনার কি বৈধতা দেওয়ার দরকার আছে ? যদি তা না হয় তবে আপনার পাইপলাইনটি চালানোর আগে লন্টিং কমান্ডটি চালানো সত্যিই তুচ্ছ হবে এবং এটি পাস না হলে কেবল ব্যর্থ হয়।
জেনকিন্স যাচাই করতে পারেন, অথবা " তিসি আসলে চালানোর আগে কম্যান্ড লাইন থেকে", একটি ঘোষণামূলক পাইপলাইন। এটি একটি জেনকিনস সিএলআই কমান্ড ব্যবহার করে বা উপযুক্ত পরামিতিগুলির সাথে একটি এইচটিটিপি পোস্ট অনুরোধ করে করা যেতে পারে। লিন্টারটি চালানোর জন্য আমরা এসএসএইচ ইন্টারফেসটি ব্যবহার করার পরামর্শ দিয়েছি। সুরক্ষিত কমান্ড-লাইন অ্যাক্সেসের জন্য জেনকিনসকে কীভাবে সঠিকভাবে কনফিগার করতে হবে তার বিশদগুলির জন্য জেনকিনস সিএলআই ডকুমেন্টেশন দেখুন ।
এসএসএইচ দিয়ে সি এল এলির মাধ্যমে আবরণ
# 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
ব্যবহার করে এইচটিটিপি পোস্টের মাধ্যমে আবরণ 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...]