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

无法在Jenkins中获取版本号插件值

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

    我在Jenkins中为我的项目使用声明性管道语法。我想用

    pipeline {
        agent any
    
        environment {
            VERSION = VersionNumber projectStartDate: '', versionNumberString: '${BUILD_YEAR}.${BUILD_MONTH}.${BUILDS_TODAY}.${BUILD_NUMBER}', versionPrefix: 'v1.', worstResultForIncrement: 'SUCCESS'
        }
    
        stages {
            stage('Version Update'){
                steps{
                    echo '${VERSION}'
                    writeFile file: 'version.ini', text: '%VERSION%'
                }
            }
        }
    }
    

    我尝试${VERSION},%VERSION打印版本号,但它总是打印echo中的内容,writeFile步骤中的文本。(例如%版本%)

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  1
  •   Vasiliki Siakka    6 年前

    在groovy中,使用单引号的字符串 ' 别让我生气 interpolated . 你应该使用双引号,而不是 $ 在每个要替换的变量前面(如果要保留 \ ).

    writeFile 它是一个管道命令,所以它在jenkins主机上作为groovy运行,而不是在构建节点上运行。这就是为什么你需要这样对待它(双引号和 $ ). 管道{

        environment {
            VERSION = VersionNumber projectStartDate: '', versionNumberString: "${BUILD_YEAR}.${BUILD_MONTH}.${BUILDS_TODAY}.${BUILD_NUMBER}", versionPrefix: 'v1.', worstResultForIncrement: 'SUCCESS'
        }
    
        stages {
            stage('Version Update') {
                steps {
                    echo "${VERSION}"
                    writeFile file: 'version.ini', text: "$VERSION"
                }
            }
        }
    }
    

    注意:我没有使用版本号插件,所以我无法测试这个确切的代码