क्या टिप्पणियों को जेनकिंसफाइल में जोड़ा जा सकता है?


177

क्या Jenkinsfile में टिप्पणियां संभव हैं? यदि हां, तो वाक्य रचना क्या है?

मैं घोषणात्मक पाइपलाइन सिंटैक्स का उपयोग कर रहा हूं।

जब तक मेरा SMTP सर्वर काम कर रहा है, मैं नीचे "पोस्ट" अनुभाग पर टिप्पणी करना चाहता हूं।

pipeline {

  agent { label 'docker-build-slave' }

  environment {
    IMAGE = 'registry.gitlab.com/XXXXX/bible-server'
    DOCKER_REGISTRY_CREDENTIALS = credentials('DOCKER_REGISTRY_CREDENTIALS')
  }

  options {
    timeout(10)
  }

  stages {

    stage('Test') {
      steps {
        sh 'yarn'
        sh 'npm test'
      }
    }

    stage('Build') {
      when {
        branch '*/master'
      }
      steps {
        sh 'docker login -u ${DOCKER_REGISTRY_CREDENTIALS_USR} -p ${DOCKER_REGISTRY_CREDENTIALS_PSW} registry.gitlab.com'
        sh 'docker build -t ${IMAGE}:${BRANCH_NAME} .'
        sh 'docker push ${IMAGE}:${BRANCH_NAME}'
      }
    }

    stage('Deploy') {
      when {
        branch '*/master'
      }
      steps {
        echo 'Deploying ..'
      }
    }
  }

  post {
    success {
      mail to: "XXXXX@gmail.com", subject:"SUCCESS: ${currentBuild.fullDisplayName}", body: "Yay, we passed."
    }
    failure {
      mail to: "XXXXX@gmail.com", subject:"FAILURE: ${currentBuild.fullDisplayName}", body: "Boo, we failed."
    }
  }
}

2
जब भी आपके पास जेनकिंसफाइल्स के बारे में ऐसे भाषा प्रश्न हों, तो बस याद रखें कि वे ज्यादातर भौगोलिक स्क्रिप्ट हैं। इसलिए यह संभव है कि आप अधिक परिणाम पाएंगे यदि आप "जेनकिंसफाइल" के बजाय "ग्रूवी" कीवर्ड जोड़ते हैं।
राउल सालिनास-मोंटेगुडो

जवाबों:


282

जेनकिंसफाइल ग्रूवी में लिखा गया है जो जावा (और सी) टिप्पणियों का उपयोग करता है:

/* this
   is a
   multi-line comment */

// this is a single line comment

3
मैं एक sh सेक्शन के अंदर एक जेनकिंसफाइल पर घोषणात्मक पाइपलाइन का उपयोग कर रहा हूं और यह विफल रहता है, शायद यह ब्लॉक स्तर पर काम करता है। pipeline { ... stage('Set Tagging') { steps { sh ''' echo "env.m_time='$m_time'" > ${params_file} echo "env.m_comp_tag='${BRANCH_NAME}_${m_time}_${BUILD_NUMBER}'" >> ${params_file} /* echo "env.docker_ws='/usr/local/lib/node_modules/${repo}'" >> ${params_file} */ ''' < त्रुटि / बैश अनुमतियाँ त्रुटि के परिणाम
चेन

6
एक shसेक्शन के अंदर , आपको शेल कमेंट कैरेक्टर का उपयोग करना होगा:#
BMitch

18

आप प्रत्येक पंक्ति के लिए ब्लॉक (/ *** /) या एकल लाइन टिप्पणी (//) का उपयोग कर सकते हैं। आपको sh कमांड में "#" का उपयोग करना चाहिए।

टिप्पणी ब्लॉक करें

/*  
post {
    success {
      mail to: "XXXXX@gmail.com", 
      subject:"SUCCESS: ${currentBuild.fullDisplayName}", 
      body: "Yay, we passed."
    }
    failure {
      mail to: "XXXXX@gmail.com", 
      subject:"FAILURE: ${currentBuild.fullDisplayName}", 
      body: "Boo, we failed."
    }
  }
*/

इकलौती रेखा

// post {
//     success {
//       mail to: "XXXXX@gmail.com", 
//       subject:"SUCCESS: ${currentBuild.fullDisplayName}", 
//       body: "Yay, we passed."
//     }
//     failure {
//       mail to: "XXXXX@gmail.com", 
//       subject:"FAILURE: ${currentBuild.fullDisplayName}", 
//       body: "Boo, we failed."
//     }
// }

'श' कमांड में टिप्पणी करें

        stage('Unit Test') {
            steps {
                ansiColor('xterm'){
                  sh '''
                  npm test
                  # this is a comment in sh
                  '''
                }
            }
        }


1

टिप्पणियाँ सामान्य जावा / ग्रूवी रूपों में से किसी में भी ठीक काम करती हैं, लेकिन आप वर्तमान में अपने को संसाधित करने के लिए उपयोग नहीं कर सकते हैंgroovydocJenkinsfile (एस) ।

सबसे पहले, groovydocअद्भुत त्रुटि के साथ एक्सटेंशन के बिना फ़ाइलों पर चुटकुले

java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:109)
    at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:131)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
    at java.lang.String.substring(String.java:1967)
    at org.codehaus.groovy.tools.groovydoc.SimpleGroovyClassDocAssembler.<init>(SimpleGroovyClassDocAssembler.java:67)
    at org.codehaus.groovy.tools.groovydoc.GroovyRootDocBuilder.parseGroovy(GroovyRootDocBuilder.java:131)
    at org.codehaus.groovy.tools.groovydoc.GroovyRootDocBuilder.getClassDocsFromSingleSource(GroovyRootDocBuilder.java:83)
    at org.codehaus.groovy.tools.groovydoc.GroovyRootDocBuilder.processFile(GroovyRootDocBuilder.java:213)
    at org.codehaus.groovy.tools.groovydoc.GroovyRootDocBuilder.buildTree(GroovyRootDocBuilder.java:168)
    at org.codehaus.groovy.tools.groovydoc.GroovyDocTool.add(GroovyDocTool.java:82)
    at org.codehaus.groovy.tools.groovydoc.GroovyDocTool$add.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
    at org.codehaus.groovy.tools.groovydoc.Main.execute(Main.groovy:214)
    at org.codehaus.groovy.tools.groovydoc.Main.main(Main.groovy:180)
    ... 6 more

... और दूसरा, जहां तक ​​मैं बता सकता हूं कि एक groovyस्क्रिप्ट की शुरुआत में जावदोक-शैली की शुरुआत को नजरअंदाज किया जाता है। इसलिए भले ही आप कॉपी / अपने नाम बदलने Jenkinsfileके लिए Jenkinsfile.groovy, आपको बहुत उपयोगी उत्पादन नहीं मिलेगा।

मैं एक का उपयोग करने में सक्षम होना चाहता हूँ

/**
 * Document my Jenkinsfile's overall purpose here
 */

मेरी जेनकिंसफाइल की शुरुआत में टिप्पणी करें। ऐसी कोई किस्मत (अभी तक) नहीं।

groovydoc Jenkinsfileयदि आप -privateकमांड को पास करते हैं, तो आपके द्वारा परिभाषित वर्गों और विधियों को संसाधित करेगा


1

आधिकारिक जेनकींस प्रलेखन केवल निम्नलिखित की तरह एक पंक्ति आदेशों का उल्लेख है:

// Declarative //

और ( देखें )

pipeline {
    /* insert Declarative Pipeline here */
}

जेनकिंसफाइल का सिंटैक्स ग्रूवी पर आधारित है इसलिए टिप्पणियों के लिए ग्रूवी सिंटैक्स का उपयोग करना भी संभव है । उद्धरण:

/* a standalone multiline comment
   spanning two lines */
println "hello" /* a multiline comment starting
                   at the end of a statement */
println 1 /* one */ + 2 /* two */

या

/**
 * such a nice comment
 */
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.