首页 > 解决方案 > 使用python脚本远程触发作业后如何将jenkins作业输出传递给python

问题描述

我创建了一个 python 脚本,它成功地远程触发了 jenkins 作业,但是我试图在它被触发后实现作业状态以及作业是成功还是失败,如果成功将 jenkins 作业输出传递给 python。

jenkins_job_name = "job name"              
      Jenkins_url = "url"
      jenkins_user = "username"
      jenkins_pwd = "psswrd"
      buildWithParameters = True
      jenkins_params = {'token': 'token', 
                        'password':'psswrd',
                        'file': grp,
                        'username': 'username'}
      try:
         auth= (jenkins_user, jenkins_pwd)
         if buildWithParameters:
            data = requests.get("{0}/job/{1}/buildWithParameters".format(Jenkins_url,jenkins_job_name),auth=auth,params=jenkins_params,headers={'content-type': 'application/json'}, verify=False)
        
            if str(data.status_code) == "201":              
               print("job triggered success)
            else:
               print ("Failed to trigger the Jenkins job")  
        
      except Exception as e:
         print ("Failed triggering the Jenkins job")
         print ("Error: " + str(e))

上面是触发 jenkins 作业的 python 脚本。下面是被触发的jenkins job powershell脚本,我试图将'$ output'变量的值传递给python。这样我就可以显示 $output 变量的值。

$list = @"
$env:servers
"@
Foreach ($server in $lists) {
    Add-content path $Inputstring
    $output = Get-content path
    Write-Host $output
}

关于 - 1)我如何在远程触发作业后立即获取作业状态,因为我尝试了 last_build jenkins api,但是在运行 python 脚本后,需要几秒钟才能在 jenkins 中运行作业。2)如何将powershell脚本输出传递给python。

标签: pythonpython-3.xjenkinsjenkins-job-dsljenkins-api

解决方案


推荐阅读