簡體   English   中英

沒有在詹金斯獲得版本號插件值

[英]Not getting version number plugin value in Jenkins

我在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來打印版本號,但是它總是打印回顯內的內容,writeFile步驟內的文本。 (例如,%VERSION%)

我可以在側面菜單中以所使用的格式查看版本。

在此處輸入圖片說明

在常規中,使用單引號'字符串不會被插值 您應該改為使用雙引號,並在要替換的每個變量前面使用$ (如果要將$保留在字符串中,則需要使用\\對其進行轉義)。

對於writeFile來說,這是一個管道命令,因此它在詹金斯主服務器上而不是在構建節點上以常規方式運行。 這就是為什么您需要這樣對待它(雙引號和$ )。 管道{代理任何

    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"
            }
        }
    }
}

注意:我不使用版本號插件,因此無法測試此確切代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM