Python-junnkinsはjobを取得して情報方式を構築します。
公式文書:
要求:1つのjobが構築を開始したら、その構築状態を取得します。
キー関数:
jobが並んでいるかどうかの結果を取得します。
キューに入れて構築されているjobキューであるpending状態のすべてのjobを取得し、pending状態のjobがない場合は、空のリストに戻ります。
queue.info=server.get_queue.info()
job構築結果を取得する
{「code」:200、「datas」:{buildNumber】:1010、「build_」state":"SUCCESS"},"msg":"OK"→"
以上のPython-jeck insはjobを取得して情報の方式を構築します。つまり、小編集は皆さんに提供したすべての内容を共有します。
要求:1つのjobが構築を開始したら、その構築状態を取得します。
キー関数:
jobが並んでいるかどうかの結果を取得します。
キューに入れて構築されているjobキューであるpending状態のすべてのjobを取得し、pending状態のjobがない場合は、空のリストに戻ります。
queue.info=server.get_queue.info()
job構築結果を取得する
server.get_build_info(name, build_number)[
'result'] # SUCCESS|FAILURE<class 'str'> ABORTED <class 'str'> None None <class 'NoneType'>
コードの例:
def get_build_state(server, name, build_number):
'''
:param name: job_name
:param build_number: 1
:param:jenkins_server
:return: 1 pending,success,false,building
'''
build_state = None
# job pending job, pending job 1
queue_info = server.get_queue_info()
if queue_info:
for queue_job_info in queue_info:
if queue_job_info['task']['name'] == name:
# msg = 'pending , '
build_state = 'pending'
else:
build_state = server.get_build_info(name, build_number)[
'result'] # SUCCESS|FAILURE<class 'str'> ABORTED <class 'str'> None None <class 'NoneType'>
return build_state
この機能はインタフェースでカプセル化されます。
@build_bp.route('/gotest/api/getBuildState', methods=['POST'])
def get_job_build_state():
'''
job
return:build_state Success,Faild,Pending,Building
'''
data = request.get_json()
job_name = data['job_name']
server = get_jenkins_server()
# job
lastbuildNumber = server.get_job_info(job_name)['lastBuild']['number']
#
build_state = get_build_state(server, job_name, lastbuildNumber)
if build_state is None:
build_msg = 'Building'
elif build_state == 'SUCCESS':
build_msg = 'SUCCESS'
elif build_state == 'FAILURE':
build_msg = 'FAILURE'
elif build_state == 'ABORTED':
build_msg = 'ABORTED'
elif build_state =='pending':
build_msg = 'pending'
response = {}
datas={}
response['code'] = 200
response['msg'] = 'OK'
datas['build_state'] = build_msg
datas['buildNumber'] = lastbuildNumber
response['datas'] = datas
return response
テストインターフェース:
import requests
url='http://127.0.0.1:5000/gotest/api/getBuildState'
data={'job_name':'android_official'}
r = requests.post(url,json=data)
print(r.text)
応答:{「code」:200、「datas」:{buildNumber】:1010、「build_」state":"SUCCESS"},"msg":"OK"→"
以上のPython-jeck insはjobを取得して情報の方式を構築します。つまり、小編集は皆さんに提供したすべての内容を共有します。