代码之家  ›  专栏  ›  技术社区  ›  sfgroups

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

  •  0
  • sfgroups  · 技术社区  · 6 年前

    我正在使用版本号詹金斯插件在詹金斯版本。2.107.2条。下面的管道代码不工作。有什么帮助来解决这个问题吗?

    管道代码

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

    错误:

    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
    

    这个链接 How to use jenkins version number plugin in Jenkinsfile? 有答案但不适合我。

    1 回复  |  直到 6 年前
        1
  •  0
  •   user9009922    6 年前

    您正在使用声明性管道,它对可以在阶段内运行的命令有一些限制。

    看看 syntax guide for declarative pipelines

    你可以使用 scripted pipeline 或者在 environment 块:

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

    以后用作 $tag 在你的管道里。