Jenkins:使用buildWithParameters触发一个作业,给出白屏/空白屏



我使用的是Jenkins版本1.567。我试图通过调用buildWithParameters选项从URL启动Jenkins作业。

我的URL设置如下:

http://myjenkinsserver:8090/job/pc_test/buildWithParameters?token=PC123&Parm1=1

这个任务很好地触发了,然而,我看到的是一个空白的屏幕。所以我不知道工作是否成功,除非我手动登录到Jenkins。这在过去是不可能发生的。以前,它会显示项目页面,我将能够看到我的工作状态。

但是我不确定是什么改变使空白页出现。

谁能建议一个解决方案,我可以通过URL触发作业,然后看到作业的结果?

谢谢。

一个合适的解决方法是使用build-with-parameters插件。

将URL改为:

http://myjenkinsserver:8090/job/pc_test/ parambuild ?token=PC123&Parm1=1

这将显示一个包含所选构建参数的页面。单击"Build"按钮确认。之后,您将被重定向到项目页面。

您需要在请求正文中使用json(值必须为url编码)参数向http://myjenkinsserver:8090/job/pc_test/build发出POST请求。你的例子的正文是(还没有url编码,所以很容易阅读):

json={"parameter": {"name": "Parm1", "value": "1"}, "statusCode": "303", "redirectTo": "."}

,这里是url编码的版本(使用这个):

json=%7B%22parameter%22%3A%20%7B%22name%22%3A%20%22Parm1%22%2C%20%22value%22%3A%20%221%22%7D%2C%20%22statusCode%22%3A%20%22303%22%2C%20%22redirectTo%22%3A%20%22.%22%7D

同时确保你设置了Content-Type: application/x-www-form-urlencoded

使用curl的完整示例:

curl --data "json=on=%7B%22parameter%22%3A%20%7B%22name%22%3A%20%22Parm1%22%2C%20%22value%22%3A%20%221%22%7D%2C%20%22statusCode%22%3A%20%22303%22%2C%20%22redirectTo%22%3A%20%22.%22%7D" http://myjenkinsserver:8090/job/pc_test/build --verbose

触发作业后,您可以使用Jenkins API检查其状态。

参见http://your-jenkins-host/api/了解更多细节。查看文档

这是一个古老的问题,但关于这方面的信息仍然相当少。

这是一个在Jenkins 2.89.4的Build Description中添加"Deploy"按钮的示例:

pipeline {
  agent any
  stages {
    stage('Sample') {
      steps {
        sh 'echo "Sample"'
      }
    }
    post {
      success {
        script {
          currentBuild.description = "<form method='post' action='/job/sine-deploy/build'><input name='json' type='hidden' value="{'parameter': {'name': 'TRIGGERED_FROM_BUILD', 'runId': '${JOB_NAME}#${BUILD_NUMBER}'}, 'statusCode': '303', 'redirectTo': '/job/sine-deploy/'}" /><input name='Submit' type='submit' value='Deploy' class='submit-button primary' /></form>"
        }
      }
    }
  }
}

安全HTML需要被打开,以使表单工作

最新更新