CI实践_Android持续集成
之前已经实现了Android的持续集成,并在项目中应用了一段时间。恰逢现在有几分钟时间,把之前的一些零散的点滴记录和整理一下,供有需要的朋友参考,或后续复用。
需要的准备知识:gitlab、Jenkins、各种plugins、shell等;
另外,推荐一个seafiles,相当于云存储网盘,大家可以把构建的apk包,发送至,供团队内部使用;
当然,你也可以采用ftp为team共享也可以。
一.总体的全局配置:
配置相关plugin,如果需要进行代码检测的话,也需要安装Sonar,部分配置如下:
Sonar installations:
Name :sonar
Server URL:http://192.168.0.100:9000/
Sonar account login:admin
Sonar account password:*****
Database URL:jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
Database login:root
Database password:****
邮件通知
SMTP服务器 smtp.exmail.qq.com
用户默认邮件后缀 @aituyou.com
二.单个Project中的配置:
触发构建器:
Build after other projects are built
Projects to watch:TSD-Common
源码管理:
Git Repositories: http://121.201.13.32:9000/xiaobao/tsd-navigation.git
Build periodically:日程表
- # H -/ * * -
Pull SCM:
- # H -/ * * -
Command Shell:
- echo `pwd`
- echo "buld start time:`date`"
- echo '******************* Start build *************************'
- ##cd /var/lib/jenkins/;./env.sh
- cd /var/lib/jenkins/jobs/TSD-Nav/workspace/
- #### dos2unix files
- dos2unix `find . -name "*.java"`
- /opt/Android/adt-bundle-linux-x86_64-/sdk/tools/android update project -t -p . -n TSD-Nav
- sed -i '$d' project.properties
- sed -i '$d' project.properties
- sed -i '$a target=android-19' project.properties
- sed -i '$a android.library.reference.1=../../TSD-Common/workspace/' project.properties
- #sed -i '$a android.library.reference.1=../../TSD-Thirdparty/workspace/qiniu-sdk/' project.properties
- # change key
- sed -i 's/r1Em7hxaGvUmbu3Te5Mne508/0TC6r2T1uTX9xgdUSyQuV5Lo/g' /var/lib/jenkins/jobs/TSD-Nav/workspace/AndroidManifest.xml
- /opt/ANT/apache-ant-1.9./bin/ant clean
- /opt/ANT/apache-ant-1.9./bin/ant debug
- /opt/ANT/apache-ant-1.9./bin/ant release
- # signer
- #jarsigner -verbose -keystore /home/tuyou/HAO/TuYouDemoKeyStore -signedjar /var/lib/jenkins/jobs/TSD-Nav/workspace/bin/TSD-Nav-release-signed.apk /var/lib/jenkins/jobs/TSD-Nav/workspace/bin/TSD-Nav-release-unsigned.apk 'tuxiaobao' -storepass 'tuxiaobao'
- jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore /home/tuyou/HAO/tuyou_android.keystore -signedjar /var/lib/jenkins/jobs/TSD-Nav/workspace/bin/TSD-Nav-release-signed.apk /var/lib/jenkins/jobs/TSD-Nav/workspace/bin/TSD-Nav-release-unsigned.apk tuyou_android.keystore -storepass 'tuxiaobao'
- # get version number
- #HAO = `cat AndroidManifest.xml | grep versionName= | awk -F "=" '{print $2}' |awk -F "\"" '{print $2}'`
- #echo ${HAO}
- #cd /var/lib/jenkins/jobs/TSD-Nav/workspace/bin
- #mv TSD-Nav-debug.apk TSD-Nav-+${HAO}.apk
- #ls -la
- #cd /var/lib/jenkins/jobs/TSD-Nav/workspace/
- #get date
- # date -d now +%Y%m%d%H%M%S
- cd /var/lib/jenkins/jobs/TSD-Nav/workspace/bin
- #mv TSD-Nav-debug.apk TSD-Nav-`cat /var/lib/jenkins/jobs/TSD-Nav/workspace/AndroidManifest.xml | grep versionName= | awk -F "=" '{print $2}' |awk -F "\"" '{print $2}'`.apk
- mv TSD-Nav-release-signed.apk TSD-Nav-Release-`cat /var/lib/jenkins/jobs/TSD-Nav/workspace/AndroidManifest.xml | grep versionName= | awk -F "=" '{print $2}' |awk -F "\"" '{print $2}'`-`date -d now +%Y%m%d%H%M%S`.apk
- cd /var/lib/jenkins/jobs/TSD-Nav/workspace/
- #FTP directory :/var/ftp/anonymous/upload
- cp /var/lib/jenkins/jobs/TSD-Nav/workspace/bin/TSD-Nav-Re*.apk /var/ftp/anonymous/upload/tsd-app-Release/Nav/
- #copy to seafiles
- cp /var/lib/jenkins/jobs/TSD-Nav/workspace/bin/TSD-Nav-Re*.apk /home/tuyou/Seafile/Seafile/发布/AutoBuild
- echo '******************* Finish build *************************'
- echo "buld end time:`date`"
其实没有过多解释,如果需要了解细节的朋友,可以联系我。
CI实践_Android持续集成的更多相关文章
- 【持续集成】GitLab CI + Docker 实现持续集成
GitLab CI + Docker 实现持续集成 一.持续集成(Continuous Integration, CI)的基本概念 概述 在传统软件的开发中,代码的集成工作通常是在所有人都将工作完成后 ...
- 利用Travis CI+GitHub实现持续集成和自动部署
前言 如果你手动部署过项目,一定会深感持续集成的必要性,因为手动部署实在又繁琐又耗时,虽然部署流程基本固定,依然容易出错. 如果你很熟悉持续集成,一定会同意这样的观点:"使用它已经成为一种标 ...
- CI / CD /CD 持续集成 持续交付 持续部署
CI / CD /CD 持续集成 持续交付 持续部署 CI CD 是啥?干了啥? CI continuous integration 持续集成 CD continuous delivery 持续交付 ...
- Travis CI用来持续集成你的项目
这里持续集成基于GitHub搭建的博客为项目 工具: zqz@ubuntu:~$ node --version v4.2.6 zqz@ubuntu:~$ git --version git versi ...
- 【下一代核心技术DevOps】:(五)微服务CI与Rancher持续集成
1. 引言 DevOps的核心魅力是快速的持续集成交付,降低研发和实施运维之间的交互,使得传统的各种扯皮现象统统消失.最重要的是降低成本 保障产品交付可靠性. 使用Rancher作为持续集成的关键环节 ...
- GitLab CI/CD 进行持续集成
简介 从 GitLab 8.0 开始,GitLab CI 就已经集成在 GitLab 中,我们只要在项目中添加一个 .gitlab-ci.yml 文件,然后添加一个 Runner,即可进行持续集成. ...
- DevOps实践之持续集成Jenkins(最新版本测试)
一.安装Jenkins (1)下载并安装配置Java Development Kit 8 [root@localhost ~]# rpm -ivh jdk-8u161-linux-x64.rpm Pr ...
- fir.im weekly - 「 持续集成 」实践教程合集
我们常看到许多团队和开发者分享他们的持续集成实践经验,本期 fir.im Weekly 收集了 iOS,Android,PHP ,NodeJS 等项目搭建持续集成的实践,以及一些国内外公司的内部持续集 ...
- CI Weekly #20 | 从持续集成的角度看 “云” 的价值
很多移动开发工程师对 fastlane 耳熟能详,最近 flow.ci 的 iOS 工作流「编译」这步已采用 fastlane gym 工具(iOS 应用打包签名自动化),进一步优化了构建打包速度.快 ...
随机推荐
- Linux计划任务,自动删除n天前的旧文件【转】
转自:http://blog.csdn.net/jehoshaphat/article/details/51244237 转载地址:http://yaksayoo.blog.51cto.com/510 ...
- 【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.3.创建控件
像jQuery提供 fn.extend() 方法从而可以简单地创建插件一样,jQuery UI也提供了机制使得创造插件变得简单,也确保了公共API功能在新的插件中被保留. 1.首先,创建一个名为 j ...
- ServerMediaSession::generateSDPDescription分析
//顾名思义,就是用来生成sdp描述信息的. char* ServerMediaSession::generateSDPDescription() { //获取本地IP地址 AddressString ...
- ectouch第三讲之加载调用机制
加载与调用机制: 当地址栏键入/mobile,就会加载入口文件index.php:从入口文件里面会调用EcTouch.php公共入口文件,当进入公共入口文件,会定义一些变量,然后加载公 ...
- HDU 5787:K-wolf Number(数位DP)
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5787 题意:要求相邻的K个位的数不能相同,在[L,R]区间有多少个这样的数. #inclu ...
- 通达OA 指纹考勤机接口 源代码
通达oa2011已经支持 指纹考勤机 但只限中控iclock660 这款2000大洋的型号 通过本文的开发接口,可以与任意一款指纹机集成, 需求指纹机管理软件能实时保存数据 我这里用的是 中控u16 ...
- ORACLE--分区表数据清理
由于分区表数据增加:没做清除操作:导致表空间告急.需要清理很久之前的数据:释放空间.步骤如下 一,查看哪个表占的空间 SELECT t.segment_name, SUM(t.bytes / 1024 ...
- SURF
推荐:http://www.cnblogs.com/tornadomeet/archive/2012/08/17/2644903.html SURF-Speeded Up Robust Feature ...
- python正则表达式之元字符介绍
python中元字符及其含义如下: 元字符 含义 . 匹配除换行符以外的任意一个字符 ^ 匹配行首 $ 匹配行尾 ? 重复匹配0次或1次 * 重复匹配0次或更多次 + 重复匹配1次或更多次 {n,} ...
- YTU 2019: 鞍点计算
2019: 鞍点计算 时间限制: 1 Sec 内存限制: 64 MB 提交: 66 解决: 30 题目描述 找出具有m行n列二维数组Array的"鞍点",即该位置上的元素在该行 ...