जेनकिंस पाइपलाइन नौकरी; सुस्त कदम के लिए उचित उद्धरण


11

यह शायद 100% उपयोगकर्ता त्रुटि है, लेकिन मुझे एक चर का उपयोग करने के लिए एक पाइपलाइन काम नहीं मिल सकता है क्योंकि एक सुस्त कदम में चैनल का नाम।

यह Slack plugin और Build User Vars Plugin दोनों का उपयोग करता है । मैं इस बात की 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

Groovy में आपको स्ट्रिंग इंटरपोलेशन प्राप्त करने के लिए दोहरे उद्धरण चिह्नों का उपयोग करना होगा:

    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.
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.