广东省监理建设协会网站,成都手机网站建设开发,做微信商城网站,设计公司logo设计大全目录
一、实验
1.环境
2.GitLab 查看项目
3.Jira新建模块
4. Jira 通过Webhook 触发Jenkins流水线
3.Jira 远程触发 Jenkins 实现更新 GitLab 分支
二、问题
1.Jira 配置网络钩子失败
2. Jira 远程触发Jenkins 报错 一、实验
1.环境
#xff08;1#xff09;主机 …目录
一、实验
1.环境
2.GitLab 查看项目
3.Jira新建模块
4. Jira 通过Webhook 触发Jenkins流水线
3.Jira 远程触发 Jenkins 实现更新 GitLab 分支
二、问题
1.Jira 配置网络钩子失败
2. Jira 远程触发Jenkins 报错 一、实验
1.环境
1主机
表1 主机
主机架构版本IP备注master1K8S master节点1.20.6192.168.204.180 jenkins slave 从节点 jira9.12.1192.168.204.180:8801node1K8S node节点1.20.6192.168.204.181node2K8S node节点1.20.6192.168.204.182jenkins jenkins主节点 2.414.2192.168.204.15:8080 gitlab runner 从节点 gitlabgitlab 主节点 12.10.14192.168.204.8:82 jenkins slave 从节点 sonarqube9.6192.168.204.8:9000
2查看K8集群状态
# kubectl get node 2.GitLab 查看项目
1 GitLab查看后端项目项目编号为19 2GitLab查看前端项目项目编号为20 3.Jira新建模块
1查询已有模块前端项目 2新建后端项目模块 3再次查看模块 4. Jira 通过Webhook 触发Jenkins流水线
1Jenkins新建流水线 2配置触发器 3拿到Webhook 触发地址
http://JENKINS_URL/generic-webhook-trigger/invoke 4拿到携带TOKEN的请求参数 /invoke?tokenTOKEN_HERE 5Jira配置网络钩子 6完成创建 7新建问题 8Jenkins流水线成功运行 9再次新建问题 10Jenkins流水线成功运行
11修改Jenkins流水线配置
pipeline {agent anystages {stage(Hello) {steps {echo ${webhookData}}}}
}12拿到webhook数据 13JSON转码 14拿到关键数据
1用于创建gitlab 项目名称
issue.fields.components 2 用于gitlab 分支名称
issue.key3用于gitlab 项目组名称
issue.fields.project.name 15Postman测试获取项目id
http://192.168.204.8:82/api/v4/projects?searchdevops03-devops-service (16)Postman测试创建分支
http://192.168.204.8:82/api/v4/projects/20/repository/branches?branchnewbranchrefmaster 17GitLab前端项目成功创建分支 3.Jira 远程触发 Jenkins 实现更新 GitLab 分支
1Jenkins修改流水线代码
webhookData readJSON text: ${webhookData}//jira 事件
jiraEvent webhookData.webhookEvent
jiraProjectName webhookData.issue.fields.project.name// 获取gitlab参数
gitlabProjects []
gitlabBranchName webhookData.issue.key
gitlabGroupName jiraProjectNamefor (i in webhookData.issue.fields.components){gitlabProjects.add(i[name])
}//描述信息
currentBuild.description Trigger by ${jiraEvent} \n project: ${gitlabProjects} \n branch: ${gitlabBranchName}pipeline {agent { label build }stages {stage(Process) {steps {script {println(gitlabProjects)println(gitlabBranchName)projectIds GetProjectsId(gitlabGroupName,gitlabProjects)switch(jiraEvent) {case jira:issue_created:println(projectIds)for (id in projectIds){CreateBranch(id,gitlabBranchName,master)}breakdefault:println(error)break}}}}}
}// 创建分支
def CreateBranch(projectId,newBranchName,sourceBranchName){apiUrl projects/${projectId}/repository/branches?branch${newBranchName}ref${sourceBranchName}response HttpReq(POST, apiUrl, )
}// 获取所有项目id
def GetProjectsId(gitlabGroupName,gitlabProjects){gitlabProjectIds []for (project in gitlabProjects){id GetProjectId(gitlabGroupName,project)if (id ! 0){gitlabProjectIds.add(id)}}return gitlabProjectIds
}// 根据项目名称获取项目iddef GetProjectId(groupName,projectName){apiUrl projects?search${projectName}response HttpReq(GET, apiUrl, )response readJSON text: response.content - \nfor (i in response){if (i[path_with_namespace] ${groupName}/${projectName}){return i[id]}}
}// 封装HTTP
def HttpReq(reqType, reqUrl,reqBody ){def gitServer http://192.168.204.8:82/api/v4withCredentials([string(credentialsId: 02dce3ff-4e46-4de2-b079-5dd6093d4f64, variable: GITLABTOKEN)]) {response httpRequest acceptType: APPLICATION_JSON_UTF8,consoleLogResponseBody: true,contentType: APPLICATION_JSON_UTF8,customHeaders: [[maskValue: false, name: PRIVATE-TOKEN, value: ${GITLABTOKEN}]],httpMode: ${reqType},url: ${gitServer}/${reqUrl},wrapAsMultipart: false,requestBody: ${reqBody}}return response
} (2) Jira 新建问题更新前端项目分支 3Jenkins运行成功,出现相关描述信息 4GitLab查看前端项目新增分支 5Jira 新建问题实现同时更新前后端项目分支 6成功触发Jenkins流水线 7GitLab查看前端项目新增分支 8GitLab查看后端项目新增分支 9优化Jenkins流水线代码防止GitLab 同一项目fork问题
webhookData readJSON text: ${webhookData}//jira 事件
jiraEvent webhookData.webhookEvent
jiraProjectName webhookData.issue.fields.project.name// 获取gitlab参数
gitlabProjects []
gitlabBranchName webhookData.issue.key
gitlabGroupName jiraProjectNamefor (i in webhookData.issue.fields.components){gitlabProjects.add(i[name])
}//描述信息
currentBuild.description Trigger by ${jiraEvent} \n project: ${gitlabProjects} \n branch: ${gitlabBranchName}pipeline {agent { label build }stages {stage(Process) {steps {script {println(gitlabProjects)println(gitlabBranchName)projectIds GetProjectsId(gitlabGroupName,gitlabProjects)switch(jiraEvent) {case jira:issue_created:println(projectIds)for (id in projectIds){CreateBranch(id,gitlabBranchName,master)}breakdefault:println(error)break}}}}}
}// 创建分支
def CreateBranch(projectId,newBranchName,sourceBranchName){try {apiUrl projects/${projectId}/repository/branches?branch${newBranchName}ref${sourceBranchName}response HttpReq(POST, apiUrl, )}catch(Exception e){println(e)}
}// 获取所有项目id
def GetProjectsId(gitlabGroupName,gitlabProjects){gitlabProjectIds []for (project in gitlabProjects){id GetProjectId(gitlabGroupName,project)if (id ! 0){gitlabProjectIds.add(id)}}return gitlabProjectIds
}// 根据项目名称获取项目iddef GetProjectId(groupName,projectName){apiUrl projects?search${projectName}response HttpReq(GET, apiUrl, )response readJSON text: response.content - \nif (response.size() 1){for (i in response){if (i[path_with_namespace] ${groupName}/${projectName}){return i[id]}}}else {return response[0][id]}}// 封装HTTP
def HttpReq(reqType, reqUrl,reqBody ){def gitServer http://192.168.204.8:82/api/v4withCredentials([string(credentialsId: 02dce3ff-4e46-4de2-b079-5dd6093d4f64, variable: GITLABTOKEN)]) {response httpRequest acceptType: APPLICATION_JSON_UTF8,consoleLogResponseBody: true,contentType: APPLICATION_JSON_UTF8,customHeaders: [[maskValue: false, name: PRIVATE-TOKEN, value: ${GITLABTOKEN}]],httpMode: ${reqType},url: ${gitServer}/${reqUrl},wrapAsMultipart: false,requestBody: ${reqBody}}return response
} 10Jira 再次新建问题实现同时更新前后端项目分支 11成功 12GitLab查看前端项目新增分支 13GitLab查看后端项目新增分支 二、问题
1.Jira 配置网络钩子失败
1报错
Jira新建问题Jenkins未自动运行流水线。 2原因分析
选项错误。
3解决方法
修改Jira 网络钩子选项。
修改前: 修改后 2. Jira 远程触发Jenkins 报错
1报错 2原因分析
代码错误。
3解决方法
修改前 修改后
文章转载自: http://www.morning.fdrb.cn.gov.cn.fdrb.cn http://www.morning.snnkt.cn.gov.cn.snnkt.cn http://www.morning.nicetj.com.gov.cn.nicetj.com http://www.morning.webpapua.com.gov.cn.webpapua.com http://www.morning.cpqwb.cn.gov.cn.cpqwb.cn http://www.morning.tkqzr.cn.gov.cn.tkqzr.cn http://www.morning.smsjx.cn.gov.cn.smsjx.cn http://www.morning.mgwdp.cn.gov.cn.mgwdp.cn http://www.morning.pqcsx.cn.gov.cn.pqcsx.cn http://www.morning.wsrcy.cn.gov.cn.wsrcy.cn http://www.morning.hpcpp.cn.gov.cn.hpcpp.cn http://www.morning.pabxcp.com.gov.cn.pabxcp.com http://www.morning.ngdkn.cn.gov.cn.ngdkn.cn http://www.morning.xfjwm.cn.gov.cn.xfjwm.cn http://www.morning.ntkpc.cn.gov.cn.ntkpc.cn http://www.morning.fcrw.cn.gov.cn.fcrw.cn http://www.morning.krxzl.cn.gov.cn.krxzl.cn http://www.morning.lxjcr.cn.gov.cn.lxjcr.cn http://www.morning.stbhn.cn.gov.cn.stbhn.cn http://www.morning.zxqxx.cn.gov.cn.zxqxx.cn http://www.morning.swlwf.cn.gov.cn.swlwf.cn http://www.morning.fblkr.cn.gov.cn.fblkr.cn http://www.morning.wjlrw.cn.gov.cn.wjlrw.cn http://www.morning.qnftc.cn.gov.cn.qnftc.cn http://www.morning.qpzjh.cn.gov.cn.qpzjh.cn http://www.morning.flncd.cn.gov.cn.flncd.cn http://www.morning.gfznl.cn.gov.cn.gfznl.cn http://www.morning.qmbgb.cn.gov.cn.qmbgb.cn http://www.morning.lhptg.cn.gov.cn.lhptg.cn http://www.morning.xmxbm.cn.gov.cn.xmxbm.cn http://www.morning.zrwlz.cn.gov.cn.zrwlz.cn http://www.morning.dtnyl.cn.gov.cn.dtnyl.cn http://www.morning.zxxys.cn.gov.cn.zxxys.cn http://www.morning.mtymb.cn.gov.cn.mtymb.cn http://www.morning.kgsws.cn.gov.cn.kgsws.cn http://www.morning.txfzt.cn.gov.cn.txfzt.cn http://www.morning.tnhqr.cn.gov.cn.tnhqr.cn http://www.morning.ylyzk.cn.gov.cn.ylyzk.cn http://www.morning.rdmn.cn.gov.cn.rdmn.cn http://www.morning.kqblk.cn.gov.cn.kqblk.cn http://www.morning.ftznb.cn.gov.cn.ftznb.cn http://www.morning.gtkyr.cn.gov.cn.gtkyr.cn http://www.morning.wkknm.cn.gov.cn.wkknm.cn http://www.morning.wyrkp.cn.gov.cn.wyrkp.cn http://www.morning.mlnby.cn.gov.cn.mlnby.cn http://www.morning.krklj.cn.gov.cn.krklj.cn http://www.morning.ghrlx.cn.gov.cn.ghrlx.cn http://www.morning.gqbks.cn.gov.cn.gqbks.cn http://www.morning.kzbpx.cn.gov.cn.kzbpx.cn http://www.morning.dfkby.cn.gov.cn.dfkby.cn http://www.morning.fgtls.cn.gov.cn.fgtls.cn http://www.morning.mxnhq.cn.gov.cn.mxnhq.cn http://www.morning.rlzxr.cn.gov.cn.rlzxr.cn http://www.morning.dhyzr.cn.gov.cn.dhyzr.cn http://www.morning.gwjqq.cn.gov.cn.gwjqq.cn http://www.morning.lznfl.cn.gov.cn.lznfl.cn http://www.morning.wyppp.cn.gov.cn.wyppp.cn http://www.morning.flpjy.cn.gov.cn.flpjy.cn http://www.morning.grryh.cn.gov.cn.grryh.cn http://www.morning.kjmcq.cn.gov.cn.kjmcq.cn http://www.morning.xfhms.cn.gov.cn.xfhms.cn http://www.morning.tmsxn.cn.gov.cn.tmsxn.cn http://www.morning.prhqn.cn.gov.cn.prhqn.cn http://www.morning.hjsrl.cn.gov.cn.hjsrl.cn http://www.morning.qmwzz.cn.gov.cn.qmwzz.cn http://www.morning.dskmq.cn.gov.cn.dskmq.cn http://www.morning.whclz.cn.gov.cn.whclz.cn http://www.morning.mqdr.cn.gov.cn.mqdr.cn http://www.morning.gtwtk.cn.gov.cn.gtwtk.cn http://www.morning.dwxqf.cn.gov.cn.dwxqf.cn http://www.morning.dnwlb.cn.gov.cn.dnwlb.cn http://www.morning.ljbm.cn.gov.cn.ljbm.cn http://www.morning.nqmkr.cn.gov.cn.nqmkr.cn http://www.morning.xgjhy.cn.gov.cn.xgjhy.cn http://www.morning.nptls.cn.gov.cn.nptls.cn http://www.morning.rjfr.cn.gov.cn.rjfr.cn http://www.morning.wnrcj.cn.gov.cn.wnrcj.cn http://www.morning.mygbt.cn.gov.cn.mygbt.cn http://www.morning.tlzbt.cn.gov.cn.tlzbt.cn http://www.morning.pwksz.cn.gov.cn.pwksz.cn