標籤:
現在移動端的開發中很多團隊都用到了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:\Users\Administrator\.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_url33 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可以訪問的目錄下。
用python將jenkins構建的apk下載地載產生二維碼提供下載