Jenkins Remote Access API

Jenkins提供了三种API形式:

  • XML
  • JSON with JSONP support
  • Python

Remote access API 以REST风格形式提供的。也就是说,对于所有功能没有单一的入口,而是以".../api/"的形式提供,"..."部分是对应功能的前缀。

例如,如果你的Jenkins访问地址是 https://ci.jenkins.io,访问 https://ci.jenkins.io会展示顶层的API功能-主要是Jenkins实例的一系列可配置JOB。如果你想访问某一个job的编译信息,比如https://ci.jenkins.io/job/Infra/job/jenkins.io/job/master/lastSuccessfulBuild/,可以访问https://ci.jenkins.io/job/Infra/job/jenkins.io/job/master/lastSuccessfulBuild/api/,这会展示关于这个job的一系列功能。

使用API可以做什么

  1. 获取Jenkins的信息供逻辑上使用
  2. 触发一个新的编译
  3. 创建/复制jobs

提交JOBS

没有参数的job
对于没有参数的job,执行一个HTTP POST请求
JENKINS_URL/job/JOBNAME/build.

有参数的job

curl JENKINS_URL/job/JOB_NAME/buildWithParameters \
  --user USER:TOKEN \
  --data id=123 --data verbosity=high

另一个例子,发送文件参数

curl JENKINS_URL/job/JOB_NAME/buildWithParameters \
  --user USER:PASSWORD \
  --form FILE_LOCATION_AS_SET_IN_JENKINS=@PATH_TO_FILE

'@'符号很重要,而且文件路径也要是绝对路径。这个命令要能正常工作也需要,这个job具有一个叫File Parameter的参数,--form对应的是File location的参数定义。

Python API wrappers

JenkinsAPI and Python-Jenkins, api4jenkins 都是面向对象的Python REST API包装,旨在提供一种更方便的控制Jenkins的方法。提供了如下的功能:

  • Query the test-results of a completed build
  • Get objects representing the latest builds of a job
  • Search for artifacts by simple criteria
  • Block until jobs are complete
  • Install artifacts to custom-specified directory structures
  • Authentication support for Jenkins instances
  • Ability to search for builds by subversion revision
  • Ability to add/remove/query Jenkins agents

Java API wrappers

The jenkins-rest 库是面向Java对象的Jenkins REST API封装,提供了如下的功能

  • Endpoint definition (property or environment variable)
  • Authentication (basic and API token via property or environment variable)
  • Crumbs Issuer support (auto-detect crumbs)
  • Folder support
  • Jobs API (build, buildInfo, buildWithParameters, config, create, delete, description, disable, enable, jobInfo, lastBuildNumber, lastBuidTimestamp and progressiveText)
  • Plugin manager API (installNecessaryPlugins, list current plugins)
  • Queue API (cancel, list queue items, query queue item)
  • Statistics API (overall load)
  • Systems API (systemInfo)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容