web-dev-qa-db-ja.com

Jenkinsファイルにコメントを追加できますか?

Jenkinsファイルでコメントは可能ですか?もしそうなら、構文は何ですか?

宣言的パイプライン構文を使用しています。

私のSMTPサーバが動作するまで、私は下記の "post"セクションをコメントアウトしたいです。

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: "[email protected]", subject:"SUCCESS: ${currentBuild.fullDisplayName}", body: "Yay, we passed."
    }
    failure {
      mail to: "[email protected]", subject:"FAILURE: ${currentBuild.fullDisplayName}", body: "Boo, we failed."
    }
  }
}
111
danday74

Jenkinsファイルは、Java(およびC)形式のコメントを使用するgroovyで書かれています。

/* this
   is a
   multi-line comment */

// this is a single line comment
181
BMitch

各行にブロック(/ *** /)または単一行コメント(//)を使用できます。 shコマンドでは "#"を使うべきです。

ブロックコメント

/*  
post {
    success {
      mail to: "[email protected]", 
      subject:"SUCCESS: ${currentBuild.fullDisplayName}", 
      body: "Yay, we passed."
    }
    failure {
      mail to: "[email protected]", 
      subject:"FAILURE: ${currentBuild.fullDisplayName}", 
      body: "Boo, we failed."
    }
  }
*/

単一行

// post {
//     success {
//       mail to: "[email protected]", 
//       subject:"SUCCESS: ${currentBuild.fullDisplayName}", 
//       body: "Yay, we passed."
//     }
//     failure {
//       mail to: "[email protected]", 
//       subject:"FAILURE: ${currentBuild.fullDisplayName}", 
//       body: "Boo, we failed."
//     }
// }

'sh'コマンドにコメントを入れる

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

コメントは通常のJava/Groovyフォームのいずれでも正常に機能しますが、できない現在groovydocを使用してJenkinsfile(s)を処理​​します。

最初に、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

...そして2番目に、groovyスクリプトの開始時にJavadocスタイルのコメントを無視できる限りです。したがって、JenkinsfileJenkinsfile.groovyにコピー/名前を変更しても、それほど有用な出力は得られません。

使用できるようにしたい

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

jenkinsfileの冒頭でコメントします。そのような運は(まだ)ありません。

groovydocwill-privateをコマンドに渡す場合、Jenkinsfileで定義されているクラスとメソッドを処理します。

1
Craig Ringer