首页 文章 精选 留言 我的

精选列表

搜索[安装],共10000篇文章
优秀的个人博客,低调大师

【Python】从Jenkins下载最近一次成功构建的安装

#-*- coding:utf-8 -*-from case.beatles.test_beatles import TestBeatlesfrom framework.logger import Loggerfrom page.ios.beatles.jenkins_page import Jenkins_Toolclass DownloadApp(TestBeatles): def testDownloadfromJenkins(self): try: jp = Jenkins_Tool() jp.download_app_from_jenkins()except Exception, e: Logger.error(e)self.save_screenshot()self.fail(e.message) #-*- coding:utf-8 -*-from datetime import datetimeimport urllibimport jenkinsimport os job_names = ['job-ios','job_android'] username = 'Jenkins用户名'password = 'Jenkins密码'base_ios_debug_download_url = 'https://xxx/ios/Debug/'base_android_debug_download_url = 'https://xxx/android/Debug/'ios_app_suffix = '.ipa'class Jenkins_Tool(): def __init__(self): self.jenkins_url = 'http://jenkins host url' self.sever = jenkins.Jenkins(self.jenkins_url, username=username, password=password)# 获取最新构建号 def get_build_number(self, job_name): lastest_completed_build_number = self.sever.get_job_info(job_name)['lastCompletedBuild']['number']# print(lastest_completed_build_number) return lastest_completed_build_number# 获取Jenkins下的所有job def get_all_jobs(self): all_josbs = self.sever.get_all_jobs()print(self.sever.jobs_count())for job in all_josbs: print(job['name'])# 获取构建日志 def get_build_console_output(self, job_name): number = self.get_build_number(job_name) resps = (self.sever.get_build_console_output(job_name, number))print(resps)# 生成ios下载的绝对URL def getIosAbsoluteURL(self, job_name): ios_download_url = base_ios_debug_download_url + str(self.get_build_number(job_name)) + '/' + self.getPkgName(job_name)return ios_download_url# 生成android下载的绝对URL def getAndroidAbsoluteURL(self, job_name): android_download_url = base_android_debug_download_url + str(self.get_build_number(job_name)) + '/' + self.getPkgName(job_name)return android_download_url# 拼接包名 def getPkgName(self, job_name): number = self.get_build_number(job_name)if job_name == 'carpool_iosbuild': pkg_name = 'iOS包名前缀' + str(number) + '_.ipa' # print(pkg_name) return pkg_nameelse: pkg_name = 'Android包名.apk' return pkg_name# 从Jenkins下载最新ios App def download_ios_app(self, job_name): local = os.path.join('/Users/didi/Downloads/', self.getPkgName(job_name)) ios_download_url = self.getIosAbsoluteURL(job_name)print('开始下载iOS App...') urllib.urlretrieve(ios_download_url, local)print('iOS App 下载完成')# 从Jenkins下载最新android App def download_android_app(self, job_name): local = os.path.join('/Users/didi/Downloads/', self.getPkgName(job_name)) android_download_url = self.getAndroidAbsoluteURL(job_name)print('开始下载Android App...') urllib.urlretrieve(android_download_url, local)print('Android App 下载完成')# 下载进度 def callbackfunc(blocknum, blocksize, totalsize): '''回调函数 @blocknum: 已经下载的数据块 @blocksize: 数据块的大小 @totalsize: 远程文件的大小 ''' percent = 100.0 * blocknum * blocksize / totalsize if percent > 100: percent = 100 print "%.2f%%" % percent# 重命名ios app def rename(self, file_dir, file_name): os.chdir(file_dir) #切换目录 # print "当前目录为: %s" % os.listdir(os.getcwd()) for root, dirs, files in os.walk(file_dir): os.listdir(os.getcwd()) # 获得当前目录中的内容 for file in files: if os.path.splitext(file)[1] == '.ipa': os.rename(file_name, 'xxx'+ios_app_suffix)print('ios app已重命名为 xxx.ipa')return #从Jenkins下载最新的构建包 def download_app_from_jenkins(self): jt = Jenkins_Tool() start_download_time = datetime.now() # 开始下载时间 jt.download_ios_app('ios-job') jt.rename('/Users/didi/Downloads/',jt.getPkgName('ios-job')) jt.download_android_app('android-job') end_download_time = datetime.now() # 下载完成时间 print('Android & iOS下载耗时:' + str((end_download_time - start_download_time).seconds))return True

优秀的个人博客,低调大师

Flutter 04: 图解第一个程序遇到的安装依赖问题

小菜刚开始学习 Flutter 会遇到各种意想不到的问题,今天整理一下第一次新建项目运行时报的错的处理方式。 Finished with error: Please review your Gradle project setup in the android/folder. 问题 尝试方式 小菜检查程序中 android -> gradle -> local.properities,发现 sdk 路径指向的是另一套 SDK,于是重新配置一下 ANDROID_HOME 的路径; sdk.dir=E:/android-sdk-windows/android-sdk-windows flutter.sdk=C:\\Users\\YourName\\flutter flutter.versionName=1.0.0 flutter.versionCode=1 flutter.buildMode=debug 我的电脑 -> 系统属性 -> 环境变量 新建一个系统变量 ANDROID_HOME,如图: 配置 ANDROID_HOME 我的电脑 -> 系统属性 -> 环境变量 编辑用户变量 Path,将 ANDROID_HOME 添加进入,如图: 配置 Path cmd -> android list target 检测 Android SDK,如图: android list target cmd -> flutter doctor 检查 flutter 的环境依赖,小菜发现 [√] 和 [!],还有一种情况是 [×],优先需要解决 [!] 和 [×] 这两种情况,如图: flutter doctor 按照提示处理执行 flutter doctor --android-licenses,如图: 基本找到问题所在 .cfg 文件没有背加载,按指示接受输入 y 会进行好几次,接收即可,如图: cmd -> flutter doctor --android-licenses 检测,提示 All SDK package licenses accepted. 所有的 SDK 都加载成功;cmd -> flutter doctor --verbose 检测所有的都是[√],如图: flutter doctor --android-licenses 重新打开 AndroidStudio 测试一遍,OK。 小菜刚接触 Flutter 还需要不断学习摸索! 以下是小菜公众号,欢迎闲来吐槽~ 小菜公众号

优秀的个人博客,低调大师

Windows 10十亿安装量目标落空!微软市场总监:我们很满意

【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 前段时间微软发布了2018财年Q4财报,当季营收超过300亿美元,净利润89亿美元,业绩表现非常亮眼。不过微软电话会议中公布的Windows10装机量不太乐观,尽管个人消费者业务还在增长,但是Windows 10装机依然没超过7亿,跟数月之前公布的结果类似,意味着Windows 10在这几个月里并没有实现更多的装机量增长。 在Windows 10发布时,微软官方公布了一个雄心勃勃的目标--未来两三年内Windows 10系统的装机量将达到10亿,所涉及的平台不只是PC,还有智能手机、二合一笔记本以及微软的Xbox等。对于Windows 10,微软一直有大一统的梦想,一个系统适用于几乎所有的平台。 不过这个目标已经无法实现了,随着微软智能手机业务的萎靡,Windows 10的装机量增长主要还是靠PC平台,过去的三年中Windows 10的装机量确实有了大幅增长,去年底***突破6亿,市场份额达到了32%,比年初增长了9个百分点。不过装机量超过6亿之后速度就慢了下来了,截至今年6月份Windows 10的份额达到了34.9%,Windows 7的份额依然高达43%,Windows 8/8.1依然有4.9%的份额,Windows XP还有4%的份额。与年初Windows 10的34.3%份额相比,Windows 10今年的增长速度实在不能让人满意。 早在3月份微软就提到了Windows 10的装机量差不多7亿台,而在7月份的财报里微软报告的Windows 10装机量依然是接近7亿台,微软连具体数据都不公开了,只能用一些模糊的数据来表示,但是大家都看得出来这几个月来Windows 10的新增装机量确实乏善可陈。 在这个领域里,微软的敌人是自己看,Windows要想实现10亿装机量的目标(虽然希望并不大了),只能从Windows 7等系统中抢份额,努力说服那些还在用Windows 7的个人及企业、政府用户升级到Windows10,只能说剩下的工作越来越难了。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册