jenkins pipeline Jenkinsfile與Json的轉換


前段時間調研了下青雲的kubesphere,意外的發現了一個插件,pipeline-model-definition-plugin,用了將jenkins的pipeline、json互相轉換的,以前可能關注過這個插件,但是沒怎么注意,jenkins的plugin上面也沒有找到,不知道為什么,所以,這里簡單講解一下吧。

一、安裝

jenkins的plugin上面沒有提供,所以只能自己打包編譯,github上面也給出了打包的過程:cd pipeline-model-definition && mvn install && mvn hpi:run,然后將hpi文件上傳到插件即可。

二、主要api接口

2.1 獲取pipeline的json格式JSON Schema

URL: JENKINS_URL/pipeline-model-schema/json Info: 獲取json格式的jenkinsfile Returns: json

2.2 將jenkinsfile轉成json格式

URL: JENKINS_URL/pipeline-model-converter/toJson Parameters: jenkinsfile格式的文本 Info: 獲取jenkinsfile,然后將它轉換成json。 Returns: 如果成功,則返回json,否則返回報錯信息

2.3 將json格式轉換成jenkinsfile

URL: JENKINS_URL/pipeline-model-converter/toJenkinsfile Parameters: json格式的文件 Info: 獲取json格式的文件,然后將它轉換成jenkinsfile Returns: 如果成功,返回轉換后的jenkinsfile,如果失敗,返回報錯信息。

還有一些其他的接口(如:驗證json,groovy語法轉換等)就不在講解了。

三、Demo

這里將官網給出的最簡單的一個例子轉換成json,構建->單元測試->部署整個過程

pipeline {
    agent any
    stages { stage(''Build'') { steps { echo ''Building..'' } } stage(''Test'') { steps { echo ''Testing..'' } } stage(''Deploy'') { steps { echo ''Deploying....'' } } } }

在postman提交請求:

即可獲得返回的結果:

{
    "status": "ok", "data": { "result": "success", "json": { "pipeline": { "stages": [ { "name": "Build", "branches": [ { "name": "default", "steps": [ { "name": "echo", "arguments": [ { "key": "message", "value": { "isLiteral": true, "value": "Building.." } } ] } ] } ] }, { "name": "Test", "branches": [ { "name": "default", "steps": [ { "name": "echo", "arguments": [ { "key": "message", "value": { "isLiteral": true, "value": "Testing.." } } ] } ] } ] }, { "name": "Deploy", "branches": [ { "name": "default", "steps": [ { "name": "echo", "arguments": [ { "key": "message", "value": { "isLiteral": true, "value": "Deploying...." } } ] } ] } ] } ], "agent": { "type": "any" } } } } }

四、總結

之前發過一篇講解過如果使用jenkins x來制作一款類似阿里雲雲效的東西,但是之前沒有發現到這款插件,導致語法的轉換需要自行切割pipeline語法,之后才發現到這款插件,不再需要重復造輪子,總體上,如果規划設計的好的話,應該可以表面上媲美雲效這款產品。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM