python - 从 python 脚本中获取 Jenkins BUILD 环境变量

标签 python jenkins

Jenkins 版本:2.74

作为构建步骤的一部分,我正在运行一个 python 脚本,并希望访问 Jenkins 构建变量,如 BUILD_ID、BUILD_NUMBER、BUILD_URL 等。

我在脚本中执行了以下操作只是为了尝试一下,但没有看到上面列出的任何键:

import os

print os.environ

输出:

{
    'USERNAME': 'root',
    'LANG': 'en_US.UTF-8',
    'TERM': 'xterm-256color',
    'SHELL': '/bin/bash',
    'XDG_RUNTIME_DIR': '/run/user/1000',
    'SUDO_COMMAND': '/bin/su myuser -c python jenkinstest.py',
    'SHLVL': '1',
    'HOME': '/usr/home1/myuser',
    'SUDO_UID': '117',
    'SUDO_GID': '125',
    'PWD': '/var/lib/jenkins/workspace/script-test',
    'LOGNAME': 'myuser',
    'USER': 'myuser',
    'PATH': '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games',
    'MAIL': '/var/mail/myuser',
    'SUDO_USER': 'jenkins',
    'XDG_SESSION_ID': '6',
    '_': '/usr/bin/python'
}

为什么会这样?

如何从 python 脚本中访问上面提到的 key (不使用 Jenkins python/json API)?

最佳答案

使用sudo时,必须注意选项--preserve-env,没有它,切换用户上下文时环境变量会丢失。

关于python - 从 python 脚本中获取 Jenkins BUILD 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45849880/

相关文章:

python - 使用 pyexiv2 将 EXIF 信息从一张图像复制并写入另一张图像

tomcat - docker tomcat重新部署应用程序

jenkins - SonarQube 5.2 版构建断路器插件替代

java - 如何跟踪 Jenkins 中的待定构建?

python - 根据多个百分比因素计算产品价格

python - 在 Cython 中使用半精度 NumPy float

python - ERROR : PyAudio-0. 2.11-cp38-cp38-win_amd64.whl 在此平台上不受支持

python - python random.choices 有偏见吗?

java - Jenkins 构建中嵌入式 Mongo DB 测试的 UnknownHostException

java - Gradle构建开始失败并显示错误-无法解析配置 ':compile'的所有文件