![](/img/trans.png)
[英]Jenkins - transfer master to slave parameter in multi-configuration parameterized job
[英]Parameters passed to jenkins job are not updated on slave machine
因此,我有一份Jenkins工作,這是一個參數化的版本。 我允許用戶選擇他們要執行構建的環境之一。 此參數存儲在變量$ {my_env}中。 然后,我在Job的配置中使用“執行Windows批處理命令”組件來執行以下命令:
setx / M envi%my_env%
這使我可以將Windows從屬計算機上的環境變量設置為envi = my_env。 現在,我在基於python的從屬計算機上有我的項目,並使用os.environ ['envi']提取了項目中的環境變量,並根據'envi'的值進一步執行了代碼。 問題是當我第一次執行這項工作時,一切都很好。 它獲取環境變量“ envi”的正確值,並根據所選環境執行正確的代碼。 但是,當我第二次執行它並從構建參數中選擇不同的環境時,它不會在我的項目中更新,並且會選擇環境變量“ envi”的舊值。 我已經驗證了使用Setx命令更新了環境的實際值,但是我的python項目仍然獲取舊值。 有任何想法嗎?
根據setx
和set
變量在Windows中的工作, setx
將永久更新該值,但不會立即使其可用。 set
將使其立即可用,但不是永久可用。 因此,您必須同時使用兩者。 因此,代碼將類似於:
SET XYZ=<value>
SETX /M XYZ <value>
這將使在該會話中設置XYZ值,並使該值永久不變。 我添加了一些有用的鏈接來自己學習。 希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.