1

我已將jenkinsfile配置爲具有以下屬性,但在從主分支創建新分支時,它不適用於jenkins服務器。jenkinsfile參數屬性未在初始分支創建時在jenkins服務器中配置

#!groovy 

properties([[$class: 'ParametersDefinitionProperty', 
    parameterDefinitions: [ 
     [$class: 'StringParameterDefinition', name: 'isValid', defaultValue: 'false'] 
    ] 
]]) 

node { 
    stage 'Checkout'   
     checkout scm 
    ..... 
    ..... 
} 

Git中創建分支後,分支與現在構建選項詹金斯服務器可見。

一旦我第一次從jenkins服務器運行分支,它將更改爲使用參數選項生成。

有什麼我錯過了在jenkinsfile配置?爲什麼在分支創建時jenkins服務器中未配置參數?

+2

這是現有的Jenkins問題。請參閱https://issues.jenkins-ci.org/browse/JENKINS-40574 –

回答

0

您可以通過使用params.isValid代替env.isValid解決這個問題。

0

我用來解決這個問題的一個方法是檢查分支上的env.BUILD_NUMBER == "1",然後爲我的參數設置一些默認值,以便在該分支的初始運行時使用。例如:

node { 
    properties([ 
    buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '15')), 
    parameters([ 
     string(defaultValue: '', description: '', name: 'PLATFORM') 
    ]) 
    ]) 

    stage("Testing") { 
    // set a default for PLATFORM if it's the first build of a PR 
    // as a workaround to parameters not being available on first run of build 
    if (env.BUILD_NUMBER == "1") { 
     PLATFORM = '' 
    } 

    if (PLATFORM.empty) { 
     .... 
    } 
    } 
} 
相關問題