Web Rest Api实践
API首页:http://127.0.0.1:8080/api/
项目API
- 获取项目信息
- 获取项目构建信息
- 获取项目配置
- 创建项目
- 接口:http://127.0.0.1:8080/createItem?name={projectName}
- 参数: —data-binary @config.xml
- 头部:-H “Content-Type:text/xml”
- 方式: POST
- 禁用项目
- 启用项目
- 删除项目
- 构建项目
- 接口: http://127.0.0.1:8080/job/{projectName}/build
- 方式: POST
- 参数化构建
Jenkinsfile 封装
pipeline {agent anyoptions {skipDefaultCheckout()// skipDefaultCheckout true}stages{stage("build"){steps{script {// buildID = GetBuildID("demo-pipeline-service", "lastBuild", "admin:admin" )// println(buildID)// result = GetBuildResult("demo-pipeline-service", buildID, "admin:admin")// println(result)buildID = GetBuildID("demo-pipeline-service", "lastBuild" )println(buildID)result = GetBuildResult("demo-pipeline-service", buildID )println(result)// int currentBuildId = Integer.parseInt("${BUILD_NUMBER}")// int previousBuildId = currentBuildId - 1// println(previousBuildId)// result = GetBuildResult("${JOB_NAME}", previousBuildId, "admin:admin")// println(result)}}}}}//request/*method: POST/GET/PUTapiurl: job/type: json/xml*/def HttpRequest(method, apiurl, type){jenkinsserver = "http://192.168.1.200:8080/"withCredentials([string(credentialsId: 'cdce9f6f-bc15-4e19-aafa-6fd8273abe92', variable: 'authuser')]) {// some blockresponse = sh returnStdout: true, script: "curl -X ${method} ${jenkinsserver}/${apiurl}/api/${type} -s -u ${authuser}"response = response.trim()result = readJSON text: "${response}"return result}}// 获取作业构建结果def GetBuildResult(jobName, buildId){// sh """// curl http://192.168.1.200:8080/job/${jobName}/${buildId}/api/json -u ${authUser} -o result.json -s// """// def response = readJSON file: "result.json"response = HttpRequest("GET", "job/${jobName}/${buildId}", "json")return response.result}// 获取作业的构建ID/** type = [lastBuild| lastCompletedBuild | lastFailedBuild | lastStableBuild | lastSuccessfulBuild]*/def GetBuildID(jobName, type){// sh """// curl http://192.168.1.200:8080/job/${jobName}/api/json -u ${authUser} -o result.json -s// cat result.json// """// def response = readJSON file: "result.json"response = HttpRequest("GET", "job/${jobName}", "json")println(response)return response[type].number}
