জেনকিনস পাইপলাইন কাজ; স্ল্যাকসেন্ড পদক্ষেপের জন্য যথাযথ উদ্ধৃতি


11

এটি সম্ভবত 100% ব্যবহারকারীর ত্রুটি, তবে স্ল্যাকসেন্ড পদক্ষেপে চ্যানেলের নাম হিসাবে কোনও ভেরিয়েবলটি ব্যবহার করার জন্য আমি পাইপলাইন কাজ পেতে পারি না।

এটি স্ল্যাক প্লাগইন এবং বিল্ড ইউজার ওয়ার্স প্লাগইন উভয়ই ব্যবহার করে । আমি BUILD_USER_FIRST_NAMEকোন চ্যানেল স্যাক করতে হবে তা শনাক্ত করার জন্য আমি চেষ্টা করার চেষ্টা করছি (অর্থাত, যে বার্তাটি তৈরি করা শুরু করা উচিত সেই বার্তাটি পাওয়া উচিত)।

পাইপলাইনের কাজে বিল্ড ইউজার প্লাগইন কীভাবে ব্যবহার করতে হবে সে সম্পর্কে এই নিবন্ধটি দিয়ে অর্ধেক পেলেন তবে ভেরিয়েবলটি প্রতিস্থাপন করা আমাকে ট্রিপ করছে।

কাজের প্রাসঙ্গিক অংশটি এমন দেখাচ্ছে;

stage ('message') {

    wrap([$class: 'BuildUser']) {

        sh "printf '%s' ${BUILD_USER_FIRST_NAME} > name.txt"

    }

    archiveArtifacts artifacts: 'name.txt'
    name = readFile('name.txt')
    echo "name is $name" //works fine, I get Alex

    if ( "$output" != null ) {
        slackSend (channel: '@$name', color: '#36A64F', message: "Job succeeded")
    } else {
        slackSend (channel: '@$name', color: '#36A64F', message: "Job failed")
    }

}

আমি চ্যানেল বিটের জায়গায় নিম্নলিখিতটি চেষ্টা করেছি, সমস্তই অনির্দিষ্ট ত্রুটিতে ব্যর্থ হয়েছে Slack post may have failed. Response: Invalid channel specified

channel: '@${name}',
channel: '@" + ${name} + "',
channel: '@"${name}"',

প্রত্যাশিত আউটপুট হ'ল এটি সমাধান হবে channel: '@Alex',

সঠিক বাক্য গঠন কী?

উত্তর:


6

গ্রোভিতে স্ট্রিং ইন্টারপোলেশন পেতে আপনাকে ডাবল উদ্ধৃতি ব্যবহার করতে হবে:

    if ( "$output" != null ) {
        slackSend (channel: "@${name}", color: '#36A64F', message: "Job succeeded")
    } else {
        slackSend (channel: "@${name}", color: '#36A64F', message: "Job failed")
    }

এটি সম্পূর্ণরূপে এড়াতে এবং কম সদৃশতা পেতে আপনি সম্ভবত এটির মতো কিছু করতে পারেন:

name = '@' + readFile('name.txt')

slackSend (channel: name //etc.
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.