基于Python的Jenkins的二次开发

电脑杂谈  发布时间:2020-06-15 02:19:03  来源:网络整理

基于python的微信公众平台二次开发 pdf_微信公众平台开发 pdf_微信公众平台开发入门教程 pdf

每个作业都有一个对应的名称. 如果作业放置在文件夹中,则名称为文件夹名称+作业名称. 查看工作信息时,将返回一个full_name字段基于python的微信公众平台二次开发 pdf,该字段引用了此内容.

pip install python-jenkins执行此命令以安装SDK.

官方网站:

说明:

文档全部为英文. 如果您有兴趣,当然最好阅读这一内容,但是此SDK实际上非常非常简单. 如果直接访问源代码,则没有问题. 在开发过程中,基本上,它是通过查看源代码来编写的. SDK中的函数名称相对简单明了,无需深入了解即可正常使用.

这是一些更常用的方法基于python的微信公众平台二次开发 pdf,我这次在开发中也使用了这些方法. 我根据自己的写作过程逐步编写它们.

微信公众平台开发入门教程 pdf_微信公众平台开发 pdf_基于python的微信公众平台二次开发 pdf

在Jenkins中,每个构建都是一个工作,因此在开发时,我们应该在页面上显示历史构建信息,因此我们需要能够获取历史执行工作信息. 因此,我们要使用get_job_info方法.

    def get_job_info(self, name, depth=0, fetch_all_builds=False):
        '''Get job information dictionary.
        :param name: Job name, ``str``
        :param depth: JSON depth, ``int``
        :param fetch_all_builds: If true, all builds will be retrieved
                                 from Jenkins. Otherwise, Jenkins will
                                 only return the most recent 100
                                 builds. This comes at the expense of
                                 an additional API call which may
                                 return significant amounts of
                                 data. ``bool``
        :returns: dictionary of job information
        '''

此处的name参数是作业的名称. 例如,如果我创建一个称为自动化测试的新作业,那么该名称将传递给自动化测试. 如果我将此作业放在文件夹中,则name此参数需要通过文件夹名称/自动测试.

这里有一个坑. 在Python2.7版本中传递此名称. 如果以变量的形式传递它,将出现错误. 避免这种情况的方法是使用name.encode('utf-8')进行编码过程. . 返回的参数为:

图片

所有历史构建数据都存储在构建字段中. 在属性字段中,放置了Jenkins构建的各种参数.

微信公众平台开发入门教程 pdf_微信公众平台开发 pdf_基于python的微信公众平台二次开发 pdf

获取构建数据后,我们需要将其显示在页面上. 直接在页面上查看日志更加方便. 因此,要获取每个构建日志,您需要调用get_build_console_output方法.

    def get_build_console_output(self, name, number):
        '''Get build console text.
        :param name: Job name, ``str``
        :param number: Build number, ``int``
        :returns: Build console output,  ``str``
        '''

Jenkins的构建日志可以在这里获取,返回的字符串是字符串. 应当注意,如果要在生成时显示生成日志,则只需要在生成期间调用此方法即可. 它将返回调用时建立的日志. 您可以通过套接字或轮询显示实时日志.

执行构建当然是非常关键的一步,我们可以使用build_job方法执行构建.

    def build_job(self, name, parameters=None, token=None):
        '''Trigger build job.
        This method returns a queue item number that you can pass to
        :meth:`Jenkins.get_queue_item`. Note that this queue number is only
        valid for about five minutes after the job completes, so you should
        get/poll the queue information as soon as possible to determine the
        job's URL.
        :param name: name of job
        :param parameters: parameters for job, or ``None``, ``dict``
        :param token: Jenkins API token
        :returns: ``int`` queue item
        '''

此处的name参数与作业信息查询参数相同,并且还会出斯的内部编号. 该编号可用于查询其他一些数据,例如构建状态,取消构建和其他操作. SDK中有相应的方法.

基于python的微信公众平台二次开发 pdf_微信公众平台开发 pdf_微信公众平台开发入门教程 pdf

注意: 绝对不可能使用它来查询它是否正在构建中. 该号码在一定时间内将无效. 如果构建时间过长,那么如果找不到查询,则会导致错误.

这些方法使用起来更方便,但是有一些限制. 如果在构建过程中使用第三方插件,这些方法将无法获得第三方插件的结果. 例如,我们在这里使用RobotFramework插件. 处理完结果后,无法用这些方法获得结果.

Jenkins提供了一个到外界的RESTful接口,然后Python SDK的操作实际上是请求此接口,但只是做了一些包装以确保易用性. 许多方法的核心都将使用jenkins_request,例如:

response = self.jenkins_request(requests.Request(
            'POST', self.build_job_url(name, parameters, token)))

如果您有兴趣,可以自己阅读源代码. 整个SDK实际上是基于请求库打包的,然后最终都通过jenkins_request请求RESTful API. 我们进入Jenkins页面,您可以在右下角看到这样的东西.

图片

基于python的微信公众平台二次开发 pdf_微信公众平台开发 pdf_微信公众平台开发入门教程 pdf

带有此标签的页有界面,那么如何获得此界面?

您可以从源代码中找到答案. 许多方法都有这样的事情.

self.jenkins_open(requests.Request('GET', self._build_url(INFO),auth=auth),
                        add_crumb=False, resolve_auth=False)
                        
response = self.jenkins_open(requests.Request('GET', self._build_url(BUILD_INFO,locals())))

在顶部的配置中,您可以找到: INFO ='api / json'

也就是说,您可以通过在看到的页面后面添加/ api / json来获取数据.

图片

所有操作都在该数据后面,也就是说,只要编写了url拼接规则,就可以轻松进行二次开发.

当然,在开发过程中有很多陷阱. 例如,在获取历史数据时,界面不会返回历史构造状态. . .

整个开发过程相对顺利. 由于源代码相对简单,基本上可以通过查看源代码来解决问题,但是更大的问题是返回结果的枚举不在一个地方列出,因此在开发完成之后,通常会有很多地方需要修理的.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-245672-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...