【问题标题】:Python does not see env variables set from Jenkins Parameterized buildPython 看不到 Jenkins 参数化构建中设置的环境变量
【发布时间】:2020-11-28 07:42:00
【问题描述】:

我正在尝试从 jenkins 构建到我的 python 脚本中检索参数集,但是遇到了麻烦。我了解从这里设置的参数:

设置为环境变量,我在 python 中要做的就是做:

# Env variables
UPDATE_DATA = os.environ.get('update_data')
ALL_BUILDS = os.environ.get('all_builds')

但是,对于这些值,我没有得到任何结果。当我在我的 python 脚本运行之前对我的 jenkins 脚本中的这些参数进行回显时,我可以看到它们被正确打印出来。但是,由于某种原因,python 没有看到它们。如果我手动进入终端并导出变量并运行我的 python 脚本,它可以工作。所以我完全迷失在这里。

Jenkins 服务器在 linux 上运行。使用python 2.7

【问题讨论】:

    标签: python python-2.7 jenkins environment-variables jenkins-pipeline


    【解决方案1】:

    你可以像这样使用布尔变量:

    输出:

    【讨论】:

    • 感谢@souravatta 的回复。我实际上在我正在运行的配置之外有一个 python 脚本。但无论如何,我尝试将它放在我的 python 脚本中,但它不起作用。
    • 实际上,当我完全按照您的操作进行操作时,无论设置为 false 还是 true,它们总是打印 True。
    【解决方案2】:

    似乎当我在 Jenkins 配置中(不在我的项目中的文件内)运行 python 脚本时,就像@souravatta 建议的那样,它找到了 env 变量。这意味着 Jenkins 正在设置的 env 变量以某种方式位于不同的实例上(即使它们在同一台计算机上,同一用户上)。我刚刚做了一个解决方法,将环境变量写入文件,然后在我的 python 脚本中读取该文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-31
      • 1970-01-01
      • 2018-11-10
      • 2018-04-04
      • 1970-01-01
      • 2020-08-03
      • 2018-11-28
      • 2017-07-26
      相关资源
      最近更新 更多