- 获取 Jenkins API Token:
首先,登录到你的 Jenkins 服务器。
点击右上角的用户名,然后选择“Configure(配置)”。
在“API Token”部分,生成一个新的 API Token 或使用已有的 Token。
- 构建 API 请求 URL:
假设你的 Jenkins 服务器 URL 是 http://jk.yeshen.org Job 名称是 test-git-log,编译的序号是 10,那么 API 请求 URL 可能是:
https://jk.yeshen.org/job/test-git-log/10/api/json
- 请求日志的方法:
import requests
USER_NAME = 'hello'
TOKEN = 'D7F4B342FAC0C3E532E1A6A49DA7AEBC'
JOB_BASE_NAME = os.getenv("JOB_BASE_NAME")
BUILD_NUMBER = os.getenv("BUILD_NUMBER")
HOST = "jk.yeshen.org"
url = "http://" + USER_NAME + ":" + TOKEN + "@" + HOST + "/job/"+ JOB_BASE_NAME + "/" + BUILD_NUMBER + "/api/json"
param={'tree':'changeSet[items[comment]{0,}]'}
content = requests.get(url, params=param).text
if response.status_code == 200:
data = response.json()
print(data)
else:
print('Failed to retrieve data:', response.status_code)
- 多机器集群的处理方法
一是我这边的机器比较多,换过了几次域名。
二是域名是用iptable映射出来到某个端口上的,不是固定的域名。
三是这边有多台slave机器,slave-0、slave-1、slave-2等等。
在这个场景下,上面的请求有概率会在迁移之后,请求失败。
可能的处理方法如下:
方法A:
把上面的 HOST 修改成 localhost:8080,这样就是本机请求。
观察slave机器上会打包失败,如果运行在slave机器上,那么可以这样,把host修改成master的ip+8080端口。
比如 HOST = “39.156.66.10:8080”
方法B:
修改映射规则,支持域名访问8080端口,那么就是步骤3中的配置,HOST = “jk.yeshen.org”