簡體   English   中英

傳遞給jenkins作業的參數不會在從屬計算機上更新

[英]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項目仍然獲取舊值。 有任何想法嗎?

根據setxset變量在Windows中的工作, setx將永久更新該值,但不會立即使其可用。 set將使其立即可用,但不是永久可用。 因此,您必須同時使用兩者。 因此,代碼將類似於:

SET XYZ=<value>
SETX /M XYZ <value>

這將使在該會話中設置XYZ值,並使該值永久不變。 我添加了一些有用的鏈接來自己學習。 希望這可以幫助。

  1. https://superuser.com/a/916652/652923
  2. https://stackoverflow.com/a/34777506/5003256
  3. https://superuser.com/a/176788/652923

暫無
暫無

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

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