jenkins - 从另一个 Jenkins 作业触发 Sonar Jenkins 作业
问题描述
我想在 Jenkins 中创建一个进程,当一个作业正在构建时,它应该在内部调用另一个为相同的代码拉取请求生成 SONAR 报告的作业。
当我试图调用 API 来自动触发 Jenkins 作业时。
https://jenkins.com/job/DPNew/job/xyz/buildWithParameters?token=DW&FROM_HASH=195c8df91791768f3098ce260eb2dd8728&REPO_NAME=_python&PROJECT_KEY=%7Eabc&EMAIL=abc@gmail.com&FROM_BRANCH_NAME=feature%2FDO-451&TO_BRANCH_NAME=Port-2.7&PR_ID=622"
作为回应,我得到了以下错误。
content: "<html><head><body style='background-color:white;
color:white;'>\n\n\nAuthentication required\n<!--\nYou are authenticated as: anonymous\nGroups that you are in:\n \nPermission you need to have (but didn't):
hudson.model.Hudson.Read\n ... which is implied by: hudson.security.Permission.GenericRead\n ... which is implied by:
hudson.model.Hudson.Administer\n-->\n\n</body></html>
我已经在“用户->配置”中创建了 Jenkins API 令牌
编辑 1:第一个 Jenkins 作业由来自 Bitbucket 的拉取请求触发,bitbucket 中的 UI 显示构建是否成功,如果构建成功则显示声纳报告。
我应该怎么做才能解决这个问题?
解决方案
代替 API 调用,使用job,这也将使您可以使用声纳报告作业中的参数并在此处显示/使用它们。
例子:
pipeline {
agent any
stages {
stage('stage_name') {
steps {
build job: 'JOB_NAME'
}
}
}
}
或带参数:
pipeline {
agent any
stages {
stage('stage_name') {
steps {
build job: 'JOB_NAME_HERE', propagate: true, parameters:
[
[
$class: 'StringParameterValue',
name: 'STRING_NAME_HERE',
value: "STRING_VALUE_HERE"
]
]
}
}
}
}
propagate: true
表示如果 JOB_NAME_HERE 失败,原始作业将失败。
推荐阅读
- jquery - How do I list, organize, or navigate between jQuery events in WebStorm/PhpStorm?
- php - Laravel 表单 :: 日期函数格式
- javascript - Nodemailer 不适用于 Heroku 部署
- javascript - 一旦我将 addeventlistener 添加到我的代码中,我的 onclick/mouse over 事件都不会触发
- angular - 打开新页面时不显示 Ionic 3 和 Open Layer 4
- bash - 即使出现错误,也可以使用 nohup 和输入文件运行 Hortonworks Apache Phoenix sqlline.py
- ios - Firestore 查询被多次调用 Swift
- python - Python 自动随机消息每 xx 分钟
- installation - 如何在 netlogo 中随机设置补丁,但不让它们相互接触?
- podio - Podio Dot Net 客户端库