2017-02-13 122 views
0

在Jenkins中,我試圖設置一個動態環境變量。EnvInject不讀環境變量

我已經使用Scriptler創建Groovy腳本並將結果寫入文件。

然後,我用EnvInject來讀取該文件的內容。

的Groovy腳本:

import jenkins.model.* 

def GB = build.getEnvVars()["GIT_BRANCH"] 
def FORMATED_BRANCH = "com.my.package%3Amy-project%3A" + "${GB}".replace("/", "%2F") 

def file = new File('groovyFile') 
file.write "FORMATED_BRANCH=${FORMATED_BRANCH}" 

的設置:

enter image description here

不過,我想還是設置環境變量無法識別:

javax.servlet.ServletException: quality.gates.jenkins.plugin.QGException: Environment variable with name 'FORMATED_BRANCH' does not exist. 
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:796) 
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876) 
    at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:236) 
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) 
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746) 

任何想法爲什麼環境變量不被識別?

+0

你可以嘗試返回該變量,例如: - return [FORMATED_BRANCH:$ {FORMATED_BRANCH}] – DevD

+0

如果我返回它,那我該如何從文件中讀取它?我怎樣才能將它傳遞給EnvInject? – octavian

+0

請提供您如何在Quality Gates插件中準確使用此環境變量。 –

回答

0

您點擊此插件問題JENKINS-39638「不可能將環境變量用作項目鍵」。