" পোলিং অবশ্যই মরে যেতে হবে: জেনকিন্স একটি গিট হুক থেকে বিল্ড তৈরি করে " তে উল্লেখ করা হয়েছে , আপনি জেনকিন্সকে একটি নতুন প্রতিশ্রুতি সম্পর্কে অবহিত করতে পারেন:
সর্বশেষতম গিট প্লাগইনটি 1.1.14 (যা আমি এখনই প্রকাশ করেছি) দিয়ে আপনি এখন আরও সহজেই নিম্নলিখিত কমান্ডটি প্রয়োগ করে এটি করতে পারেন:
curl http://yourserver/jenkins/git/notifyCommit?url=<URL of the Git repository>
এটি নির্দিষ্ট ইউআরএল চেক করার জন্য কনফিগার করা সমস্ত কাজ স্ক্যান করবে এবং যদি তারাও পোলিংয়ের মাধ্যমে কনফিগার করা থাকে তবে তা অবিলম্বে পোলিংটিকে ট্রিগার করবে (এবং যদি এটি কোনও বিল্ডের মূল্য খুঁজে পায়, তবে একটি বিল্ড ঘুরে দেখা যাবে)। )
জেনকিন্সে যখন চাকুরী আসে এবং যায় তখন স্ক্রিপ্টটি একই থাকতে পারে।
অথবা যদি আপনার একক সংগ্রহস্থল হোস্ট অ্যাপ্লিকেশন (যেমন গিটোসিস) এর অধীনে একাধিক সংগ্রহস্থল থাকে তবে আপনি সমস্ত সংগ্রহস্থলের সাথে একক পোস্ট-রিসিভ হুক স্ক্রিপ্ট ভাগ করতে পারেন। শেষ পর্যন্ত, এই ইউআরএলটিকে সুরক্ষিত জেনকিন্সের জন্যও প্রমাণীকরণের প্রয়োজন হয় না, কারণ ক্লায়েন্টটি পাঠানো সার্ভারটি সরাসরি এমন কিছু ব্যবহার করে না। এটি বাস্তবে কোনও বিল্ড শুরুর আগে কোনও পরিবর্তন হয়েছে কিনা তা যাচাই করতে এটি পোলিং চালায়।
এখানে উল্লিখিত হিসাবে , আপনার জেনকিন্স সার্ভারের জন্য সঠিক ঠিকানাটি ব্যবহার করতে ভুলবেন না:
যেহেতু আমরা জেনকিন্সকে 8080 পোর্টে স্ট্যান্ডেলোন ওয়েবসভার হিসাবে চালাচ্ছি ইউআরএলটি এমনটি হওয়া উচিত ছিল না /jenkins
:
http://jenkins:8080/git/notifyCommit?url=git@gitserver:tools/common.git
যে শেষ বিন্দু শক্তিশালী করা, ptha যোগ মন্তব্য :
এটি সুস্পষ্ট হতে পারে তবে আমার এতে সমস্যা ছিল:
curl http://yourserver/jenkins/git/notifyCommit?url=<URL of the Git repository>.
URL প্যারামিটার ঠিক সুসংগত হওয়া কি আছে সংগ্রহস্থলের প্রয়োগ URL টি আপনার জেনকিন্স কাজের।
উদাহরণগুলি অনুলিপি করার সময় আমি প্রোটোকলটি রেখেছিলাম, আমাদের ক্ষেত্রে ssh://
, এবং এটি কার্যকর হয়নি।
এছাড়াও আপনি একটি সহজ ব্যবহার করতে পারেন মধ্যে "মত হুক পোস্ট গ্রহণ ভিত্তিক পুশ জেনকিন্স এবং এলেবেলে ব্যবহার তৈরী করে "
#!/bin/bash
/usr/bin/curl --user USERNAME:PASS -s \
http://jenkinsci/job/PROJECTNAME/build?token=1qaz2wsx
"ট্রিগার রিমোটলি বিল্ডস" করতে সক্ষম হতে আপনার জেনকিন্স কাজের কনফিগার করুন এবং একটি প্রমাণীকরণ টোকেন ব্যবহার করুন ( 1qaz2wsx
এই উদাহরণে)।
তবে এটি একটি প্রকল্প-নির্দিষ্ট স্ক্রিপ্ট, এবং লেখক এটিকে সাধারণকরণের একটি উপায় উল্লেখ করেছেন।
প্রথম সমাধানটি সহজ কারণ এটি প্রমাণীকরণ বা নির্দিষ্ট প্রকল্পের উপর নির্ভর করে না।
কমপক্ষে একটি জাভা ফাইল আছে কিনা তা বিল্ডটি শুরু হওয়া উচিত কিনা তা পরিবর্তন চেপে দেখতে চাই।
ধরুন, বিকাশকারীরা কেবলমাত্র এক্সএমএল ফাইল বা সম্পত্তি ফাইলগুলি পরিবর্তন করেছে, তবে বিল্ডটি শুরু করা উচিত নয়।
মূলত, আপনার বিল্ড স্ক্রিপ্টটি করতে পারে:
git notes
প্রথম কলটিতে একটি 'বিল্ড' নোট রাখুন (দেখুন )
- পরবর্তী কলগুলিতে,
HEAD
আপনার শাখার প্রার্থীর জন্য বিল্ডের জন্য এবং git notes
'বিল্ড' ( git show refs/notes/build
):) দ্বারা প্রতিশ্রুতিবদ্ধ প্রতিশ্রুতিবদ্ধদের মধ্যে করা কমিটের তালিকাটি ধরুন git diff --name-only SHA_build HEAD
।
- আপনার লিপিটি সেই তালিকাটিকে বিশ্লেষণ করতে পারে এবং সিদ্ধান্ত নিতে পারে যে বিল্ডের সাথে এটি চালিয়ে যাওয়া দরকার।
- কোনো ক্ষেত্রে, তৈরি / আপনার সরাতে
git notes
' build
' থেকে HEAD
।
মে 2016: cwhsu আউট পয়েন্ট মন্তব্যের নিম্নলিখিত বিষয়গুলোকে সম্ভাব্য URL:
আপনি curl --user USER:PWD http://JENKINS_SERVER/job/JOB_NAME/build?token=YOUR_TOKEN
যদি কেবল আপনার আইটেমটিতে ট্রিগার কনফিগার সেট করেন আপনি কেবল ব্যবহার করতে পারেন
জুন 2016, polaretto তুলে ধরে মন্তব্য :
আমি যুক্ত করতে চেয়েছিলাম যে সামান্য শেল স্ক্রিপ্টিংয়ের সাহায্যে আপনি ম্যানুয়াল ইউআরএল কনফিগারেশন এড়াতে পারবেন, বিশেষত যদি আপনার একটি সাধারণ ডিরেক্টরিতে অনেকগুলি সংগ্রহস্থল থাকে।
উদাহরণস্বরূপ, রেপো নামটি পেতে আমি এই পরামিতিগুলির বিস্তৃতি ব্যবহার করেছি
repository=${PWD%/hooks};
repository=${repository##*/}
এবং তারপরে এটি ব্যবহার করুন:
curl $JENKINS_URL/git/notifyCommit?url=$GIT_URL/$repository