簡體   English   中英

如何使用 Python 腳本在執行期間讀取 Jenkins 管道控制台輸出?

[英]How can i read Jenkins pipeline console output during execution using Python Script?

我需要在管道執行期間讀取前一階段(管道的)的控制台輸出。 上一階段的控制台輸出將輸入到我在下一階段運行的 python 腳本中。 請建議

如果您使用 Blue Ocean 插件,則可以使用Blue Ocean REST API檢索階段式控制台輸出。

當您單擊該階段時,Blue Ocean URL 中的階段由節點編號表示。 例如,在 URL .../blue/organizations/jenkins/<job_name>/detail/<job_name>/<build_number>/pipeline/24 ,節點編號為24 對於給定管道中的特定階段,該值保持不變。

假設您的作業具有匿名讀取權限,在您的下游管道階段,您可以調用 Python 腳本來讀取任何先前階段的控制台輸出。

示例 Python 腳本:

import os
import requests
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

current_build_num = os.environ['BUILD_NUMBER']
stage_url = 'https://<jenkins_base_url>/cdf/blue/rest/organizations/jenkins/pipelines/<job_name>/runs/{0}/nodes/<node_number>/log/'.format(current_build_num)
stage_log = requests.get(stage_url, verify=False).content
print(stage_log)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM