এমন কোনও সরঞ্জাম আছে যা জেনকিনসফাইলে অনলাইনে বৈধকরণ সম্ভব করে?


13

এই মুহুর্তে আমি জেনকিনসফাইলে সম্পাদনা করছি এবং জেনকিন্স কোনও সমস্যা রিপোর্ট না করে তা চালিয়ে দেওয়া উচিত। এই পদ্ধতির জন্য অনেক সময় ব্যয় হয়। আমি জেনকিনসফাইলে প্রতিশ্রুতি দেওয়ার আগে বাক্য গঠনটি বৈধকরণ করতে পছন্দ করি। এমন কোনও সরঞ্জাম রয়েছে যা এই সমস্যাটি সমাধান করে?

ইন gitlab কোনো URI, অর্থাত্ আছে /ci/lintএটা সম্ভব, একটি gitlab ফাইল জমা দেওয়ার চেক বাটনে ক্লিক করুন এবং তারপর ইউআই ইঙ্গিত হবে কিনা সিনট্যাক্স সঠিক কি না সহজ করে।

উত্তর:


13

জেনকিনস পাইপলাইন লিন্টার এবং এর আদেশগুলি সম্পর্কে এখানে কিছু ডকুমেন্টেশন রয়েছে। প্রতিশ্রুতি দেওয়ার আগে আপনার কি বৈধতা দেওয়ার দরকার আছে ? যদি তা না হয় তবে আপনার পাইপলাইনটি চালানোর আগে লন্টিং কমান্ডটি চালানো সত্যিই তুচ্ছ হবে এবং এটি পাস না হলে কেবল ব্যর্থ হয়।

থেকে কমান্ড-লাইন পাইপলাইন Linter :

জেনকিন্স যাচাই করতে পারেন, অথবা " তিসি আসলে চালানোর আগে কম্যান্ড লাইন থেকে", একটি ঘোষণামূলক পাইপলাইন। এটি একটি জেনকিনস সিএলআই কমান্ড ব্যবহার করে বা উপযুক্ত পরামিতিগুলির সাথে একটি এইচটিটিপি পোস্ট অনুরোধ করে করা যেতে পারে। লিন্টারটি চালানোর জন্য আমরা এসএসএইচ ইন্টারফেসটি ব্যবহার করার পরামর্শ দিয়েছি। সুরক্ষিত কমান্ড-লাইন অ্যাক্সেসের জন্য জেনকিনসকে কীভাবে সঠিকভাবে কনফিগার করতে হবে তার বিশদগুলির জন্য জেনকিনস সিএলআই ডকুমেন্টেশন দেখুন ।

এসএসএইচ দিয়ে সি এল এলির মাধ্যমে আবরণ

# 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 &#125;
   ^

এই দ্বিতীয় উদাহরণে, 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...]
২030


একটি উত্তর পোস্ট করার জন্য আপনাকে ধন্যবাদ। পাশাপাশি একটি অনলাইন সরঞ্জাম আছে? এটি দুর্দান্ত হবে যদি কেউ ইউআইতে নেভিগেট করতে পারে, একটি জেনকিনসফাইলে পোস্ট করতে পারে এবং সিনট্যাক্সের সমস্যা আছে কিনা তা পরীক্ষা করতে পারে। আমি প্রশ্ন আপডেট করেছি।
২030

@ 030 আমি সন্দেহ করি যে এখানে একটি অনলাইন লিন্টারের সরঞ্জাম রয়েছে তবে এটি মজাদার প্রকল্প হিসাবে মনে হচ্ছে :) স্থানীয়ভাবে লিন্টারটি ব্যবহার করার জন্য আপনাকে আপনার শংসাপত্রের সাথে আপনার জেনকিন্স সার্ভারে লগইন করতে হবে, তারপরে জেনকিনসকে আপনার লিঙ্ক দিতে "জিজ্ঞাসা করুন" jenkinsfile। pierre-beitz.eu/2017/01/17/…
PrestonM

আপনি কি এই উত্তরের সাথে এই লিঙ্কটি থেকে কিছু স্নিপেট যুক্ত করতে পারেন? লিঙ্কটি হ্রাস করা হলে তথ্য চলে যাবে।
030
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.