简体   繁体   English

如何在管道中使用jenkins版本号插件

[英]How to use jenkins version number plugin in pipeline

I am using version number jenkin plugin in Jenkins ver. 我在Jenkins ver中使用版本号jenkin插件。 2.107.2. 2.107.2。 below pipeline code is not working. 下面的管道代码不起作用。 any help to fix this issue? 对解决此问题有帮助吗?

pipeline code 流水线代码

pipeline {

            agent any
            stages {
                stage('Pre-Build') {
                    steps {
                        sh 'echo Building Docker' 
def tag = VersionNumber (versionNumberString: '${BUILD_DATE_FORMATTED, "yyyyMMdd"}-develop-${BUILDS_TODAY}')
}

                        } 

                }

}

Error: 错误:

Running in Durability level: MAX_SURVIVABILITY
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 8: Expected a step @ line 8, column 1.
   def  tag = VersionNumber (versionNumberString: '${BUILD_DATE_FORMATTED, "yyyyMMdd"}-develop-${BUILDS_TODAY}')
   ^

1 error

    at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310)
    at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1085)
    at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603)
    at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
    at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
    at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
    at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
    at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688)
    at groovy.lang.GroovyShell.parse(GroovyShell.java:700)
    at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.doParse(CpsGroovyShell.java:131)
    at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:125)
    at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:560)
    at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:521)
    at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:325)
    at hudson.model.ResourceController.execute(ResourceController.java:97)
    at hudson.model.Executor.run(Executor.java:429)
Finished: FAILURE

this link How to use jenkins version number plugin in Jenkinsfile? 此链接如何在Jenkinsfile中使用jenkins版本号插件? has answer but not working for me. 有答案但不为我工作。

You are using the declarative Pipeline, which has some restrictions regarding the commands which can be run inside a stage. 您正在使用声明性管道,该管道对可以在阶段内运行的命令有一些限制。

Take a look at the syntax guide for declarative pipelines . 看一下声明性管道语法指南

You can either use the scripted pipeline or declare the variable in an environment block: 您可以使用脚本化管道,也可以在environment块中声明变量:

environment {
        tag = VersionNumber(versionNumberString: '${BUILD_DATE_FORMATTED,"yyyyMMdd"}-develop-${BUILDS_TODAY}');
        }

and later use it as $tag in your pipeline. 然后将其用作管道中的$tag

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM