持续集成:使用Jenkins API创建视图

持续集成:通过Jenkins API创建项目和节点介绍了使用jenkins API来创建项目和新建节点,jenkins API也可以创建视图(view)。

1. 获取视图配置文件

jenkins API创建视图(view)和创建项目类似,通过一个视图配置文件,发送post请求来创建。

视图配置文件可通过如下步骤获取:

  1. 手动在jenkins创建一个视图,例如我创建一个名为myview的视图。
  2. 访问http://192.168.30.8:8080/view/myview/config.xml,这个就是视图myview的配置文件,保存到本地(view.xml)。192.168.30是我的jenkins服务器地址。

如果不保存为文件,需要赋给某个变量,可以使用xml压缩工具压缩一下:

1
<?xml version="1.1" encoding="UTF-8"?><hudson.model.ListView><name>myview</name><filterExecutors>false</filterExecutors><filterQueue>false</filterQueue><properties class="hudson.model.View$PropertyList"/><jobNames><comparator class="java.lang.String$CaseInsensitiveComparator"/></jobNames><jobFilters/><columns><hudson.views.StatusColumn/><hudson.views.WeatherColumn/><hudson.views.JobColumn/><hudson.views.LastSuccessColumn/><hudson.views.LastFailureColumn/><hudson.views.LastDurationColumn/><hudson.views.BuildButtonColumn/><hudson.plugins.robot.view.RobotListViewColumn plugin="robot@3.2.0"/><hudson.plugins.favorite.column.FavoriteColumn plugin="favorite@2.4.1"/></columns><recurse>false</recurse></hudson.model.ListView>

2. 创建视图

执行如下命令:

1
$ curl -vvv -X POST --USER admin:11133124cbb8558231da29e8eb12b2de71 -d @view.xml -H "Content-Type: text/xml" http://192.168.30.8:8080/createView?name=MyView2

执行成功后会新创建一个名为MyView2的视图。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$ curl -vvv -X POST --USER admin:11133124cbb8558231da29e8eb12b2de71 -d @view.xml -H "Content-Type: text/xml" http://192.168.30.8:8080/createView?name=MyView2
Note: Unnecessary use of -X or --request, POST is already inferred.
* Trying 192.168.30.8:8080...
* Connected to 192.168.30.8 (192.168.30.8) port 8080 (#0)
* Server auth using Basic with user 'admin'
> POST /createView?name=MyView2 HTTP/1.1
> Host: 192.168.30.8:8080
> Authorization: Basic emhhbmdoYWl5b25nOjExMTMzMTI0Y2JiODU1ODIzMWRhMjllOGViMTJiMmRlNzE=
> User-Agent: curl/7.83.1
> Accept: */*
> Content-Type: text/xml
> Content-Length: 785
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Date: Fri, 16 Dec 2022 06:42:22 GMT
< X-Content-Type-Options: nosniff
< Content-Length: 0
< Server: Jetty(9.4.46.v20220331)
<
* Connection #0 to host 192.168.30.8 left intact

3. 将job添加到视图

可以将某个job放到创建某个的view中:

1
$ curl -vvv -X POST --USER admin:11133124cbb8558231da29e8eb12b2de71 "http://192.168.100.31:8080/view/MyView2/addJobToView?name=my_pipeline"

上面的接口请求实现将名为my_pipeline的job添加MyView2中。

参考资料:

  1. https://stackoverflow.com/questions/52126961/jenkins-rest-api-create-new-job-view
--THE END--

人与人之间情断义绝,并不需要什么具体的理由,就算表面上有,也很可能是心已经离开的结果,事后才编造的借口而已。因为倘若心没有离开,当将导致关系破裂的事态发生时,理应有人努力去挽救。如果没有,说明其实关系早已破裂。——东野圭吾《解忧杂货店》


本文标题:持续集成:使用Jenkins API创建视图

文章作者:hiyo

文章链接:https://hiyongz.github.io/posts/continuous-integration-for-jenkins-api-create-view/

许可协议:本博客文章除特别声明外,均采用CC BY-NC-ND 4.0 许可协议。转载请保留原文链接及作者。

关注微信公众号,及时接收最新技术文章!