zoukankan      html  css  js  c++  java
  • 用python将jenkins构建的apk下载地载生成二维码提供下载

     现在移动端的开发中很多团队都用到了jenkins+gradle对android代码打包成apk,然而apk怎么到我们的手机上呢,那就会想到用二维码扫描做这样一个简单的事情:

    1、要知道jenkins项目的下载地址

    2、要知道jenkins的工具空间及包的存放位置

    3、要利用python生成二维码图片

    4、要让将图片放入http中可以直接访问。

    我只上一下简单的代码,其它的可以根据实际情况改,比如怎么通过文件名获取最新的apk,也可以从urllib从页面获取最新的apk等等

    配置文件:

    [config]
    #jenkins地址
    jenkins_address = http://192.168.1.82:8080
    #jenkins中项目名称
    project_name = projectname
    #jenkins工作空间
    jenkins_space = C:UsersAdministrator.jenkins
    #项目包存放位置
    apk_home = build_apk

    运行代码:提示这个是window下的,其实在linux会更好,因为要用到定时器,linux直接crontab就好了。

     1 #-*-coding=utf-8 -*-
     2 import qrcode
     3 import time
     4 import os
     5 import ConfigParser
     6 #获取最新构建的数据包
     7 class Qr_config():
     8     def __init__(self):
     9         self.cf = ConfigParser.ConfigParser()
    10         self.cf.read("config.ini")
    11         self.jenkins_pro_address = self.cf.get("config", "jenkins_address")
    12         self.project_name = self.cf.get("config", "project_name")
    13         self.apk_home = self.cf.get("config", "apk_home")
    14         self.jenkins_space = self.cf.get("config", "jenkins_space")
    15         self.today_time = time.strftime("%Y-%m-%d")
    16 
    17     def get_apk_url(self):
    18 
    19         today_dir = "%s\jobs\%s\workspace\%s\%s" % (self.jenkins_space,
    20                                                    self.project_name,
    21                                                    self.apk_home,
    22                                                    self.today_time)
    23         if os.path.exists(today_dir):
    24             file_list = os.listdir(today_dir)
    25             file_name = file_list[-1]
    26             if file_name:
    27                 down_url = "%s/job/%s/ws/%s/%s/%s" % (self.jenkins_pro_address,
    28                                             self.project_name,
    29                                             self.apk_home,
    30                                             self.today_time,
    31                                             file_name)
    32                 return down_url
    33             else:
    34                 print "文件不存在,今日构建失败!"
    35         else:
    36             print "今日不存在构建!"
    37 
    38 if __name__ == "__main__":
    39     link = Qr_config().get_apk_url()
    40     png = "C:Users\Administrator\Desktop\1.3.2top.png"
    41     qr = qrcode.QRCode(version=1,
    42                        error_correction=qrcode.constants.ERROR_CORRECT_L,
    43                        box_size=8,
    44                        border=8,)
    45     qr.add_data(link)
    46     qr.make(fit=True)
    47     img = qr.make_image()
    48     img.save("android_qr_code.png", '')

    别忘记将图片移动到http可以访问的目录下。

  • 相关阅读:
    mysql GROUP_CONCAT 查询某个字段(查询结果默认逗号拼接)
    mysql中find_in_set的使用
    Libev源码分析07:Linux下的eventfd简介
    Libev源码分析06:异步信号同步化--sigwait、sigwaitinfo、sigtimedwait和signalfd
    Nova中的Hook机制
    Python深入:stevedore简介
    Libev源码分析05:Libev中的绝对时间定时器
    Python深入:setuptools简介
    Libev源码分析04:Libev中的相对时间定时器
    Libev源码分析02:Libev中的IO监视器
  • 原文地址:https://www.cnblogs.com/donjor/p/4607076.html
Copyright © 2011-2022 走看看