代码之家  ›  专栏  ›  技术社区  ›  Saurabh Jain

传递给jenkins作业的参数未在从属计算机上更新

  •  0
  • Saurabh Jain  · 技术社区  · 7 年前

    所以,我有一个Jenkins的工作,这是一个参数化的构建。我允许用户选择他们想要执行构建的环境之一。此参数存储在变量${my\u env}中。然后,我使用作业配置中的“执行Windows批处理命令”组件执行以下命令:

    setx/M环境%my\U环境%

    这允许我将windows从属计算机上的环境变量设置为envi=my\u env。 现在我有了这个基于python的从机上的项目,我使用os在项目中获取环境变量。environ['envi']并根据“envi”的值进一步执行代码。 问题是当我第一次执行这个任务时,一切都很好。它获取环境变量“envi”的正确值,并根据所选环境执行正确的代码。但是,当我从构建参数中选择不同的环境第二次执行它时,它不会在我的项目中更新,它会选择环境变量“envi”的旧值。我已经验证了使用Setx命令更新了环境的实际值,但我的python项目仍然获取旧值。有什么想法吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   SV Madhava Reddy    7 年前

    根据 setx set windows中的变量, setx公司 将永久更新该值,但不会立即使其可用。 设置 将立即提供,但不是永久性的。因此,您必须立即使用这两种方法。因此,代码如下所示:

    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