Jenkins 詹金斯:评论可以添加到詹金斯文件中吗?

Jenkins 詹金斯:评论可以添加到詹金斯文件中吗?,jenkins,groovy,comments,jenkins-pipeline,Jenkins,Groovy,Comments,Jenkins Pipeline,在Jenkins文件中是否可以添加注释?如果是,语法是什么 我使用的是声明性管道语法 我想注释掉下面的“post”部分,直到我的SMTP服务器正常工作 pipeline { agent { label 'docker-build-slave' } environment { IMAGE = 'registry.gitlab.com/XXXXX/bible-server' DOCKER_REGISTRY_CREDENTIALS = credentials('DOCKER

在Jenkins文件中是否可以添加注释?如果是,语法是什么

我使用的是声明性管道语法

我想注释掉下面的“post”部分,直到我的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."
    }
  }
}

Jenkins文件是用groovy编写的,groovy使用Java(和C)形式的注释:

/* this
   is a
   multi-line comment */

// this is a single line comment

注释在任何常见的Java/Groovy表单中都可以正常工作,但是您当前不能使用
groovydoc
来处理
jenkins文件

首先,
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
注释在我的文件的开头。还没有这样的运气

如果将
-private
传递给命令,则
groovydoc
将处理
Jenkinsfile
中定义的类和方法。

您可以对每行使用block(/***/)或单行注释(//)。您应该在sh命令中使用“#”

阻止评论
/*
职位{
成功{
邮寄至:XXXXX@gmail.com", 
主题:“成功:${currentBuild.fullDisplayName}”,
身体:“耶,我们通过了。”
}
失败{
邮寄至:XXXXX@gmail.com", 
主题:“失败:${currentBuild.fullDisplayName}”,
身体:“嘘,我们失败了。”
}
}
*/
仅提及以下单行命令:

// Declarative //
和()

Jenkins文件的语法基于Groovy,因此也可以使用。引述:


我在sh节内的Jenkins文件上使用声明性管道,但失败了,可能是在块级别上工作<代码>管道{…stage('Set Tagging'){步骤{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_文件}*/'
导致错误/bash权限错误在
sh
部分中,您需要使用shell注释字符:
#
每当您对Jenkins文件有这样的语言问题时,请记住它们大多是GROOVY脚本。因此,如果添加关键字,您可能会找到更多结果“groovy”而不是“Jenkinsfile”。
// 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
 */