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 9-17/2 * * 1-5

Pull SCM:

# H 9-16/2 * * 1-5

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-20140624/sdk/tools/android update project -t 3 -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.4/bin/ant clean
/opt/ANT/apache-ant-1.9.4/bin/ant debug
/opt/ANT/apache-ant-1.9.4/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`"

 

其实没有过多解释,如果需要了解细节的朋友,可以联系我。

 

转载请注明出处:http://www.cnblogs.com/haochuang/ 8年IT工作经验,5年测试技术与管理,2年产品与项目管理,曾参与过云计算\云存储\车联网产品研发工作; 业余自媒体人,有技术类垂直微信公众号;如有招聘或求职方面需求,请Mail to uetest@qq.com ;或通过 QQ:363573922 微博:@念槐聚 联系;

时间: 2024-09-13 23:25:57

CI实践_Android持续集成的相关文章

Android项目持续集成实践之Gitlab CI

简介 持续集成(Continuous integration)是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误. 入门 下面我们来简单介绍,如果通过Gitlab CI来对Android项目持续集成. 一言不合,先甩给你一个项目链接:https://gitlab.com/snowdream/Citest 项目很简单,就是一个默认创建的Andro

Android项目持续集成实践之Gitlab CI(Docker版本)

接上一篇 Android项目持续集成实践之Gitlab CI. 在我看来,.gitlab-ci.yml 配置还是有些复杂,写的脚本还是有点多,有没有办法更精简一点呢? 有,那就是Android环境Docker化.(注:对Docker感兴趣的同学,请参考这本书<Docker -- 从入门到实践>). 我在这本书的指导下封装了一个包含Android开发环境的Docker镜像. 1. https://github.com/snowdream/docker-android 1. https://hub

Flex 持续集成(CI)实践(Hudson)

项目开始后,持续集成会是一个关键的环节,本文针对Flex的开发的持续集成进行了一个实战,这些相关的工具和功能还是很强大的,通过组合这些工具,可以构建一个编译.单元测试.集成测试.代码检查等系列工作的CI服务,为后续的项目持续发展打下一定的基础. 运行Hudson http://hudson-ci.org 上下载文件 执行: java - ja r hudson.war 或 java -jar hudson.war --httpPort=8888 浏览器输入http://localhost:808

Jenkins与Docker的持续集成实践

本文讲的是Jenkins与Docker的持续集成实践[编者的话]持续集成(CI/CD)是一种软件开发实践.用于帮助团队成员频繁.快速的集成,测试他们的工作成果,以尽快发现集成错误. 更频繁.更早的集成意味着更早的发现问题.通过持续集成,及时发现和解决代码故障,提高代码质量,减少故障处理成本等等. [3 天烧脑式基于Docker的CI/CD实战训练营 | 北京站]本次培训围绕基于Docker的CI/CD实战展开,具体内容包括:持续集成与持续交付(CI/CD)概览:持续集成系统介绍:客户端与服务端的

使用 TeamCity 实现持续集成(CI)

原文同步至 https://waylau.com/continuous-integration-with-teamcity/ 持续集成(Continuous Integration),也就是我们经常说的 CI,是现代软件开发技术的基础.本文论述了如何使用 TeamCity 持续集成工具来实现项目的持续集成. 为我们什么需要 CI 目前,CI 已在当前业界被许多软件开发团队所采用,是一种在整个软件开发生命周期内保证代码质量的常见做法.它是一种开发实践,旨在帮助开发团队应对软件开发过程中的如下挑战:

云效平台:企业级互联网架构下的持续集成与持续交付实践

摘要:本文的整理自2017云栖大会-南京峰会上阿里云高级技术专家鲁小川的分享讲义,讲义主要分享了阿里云云效平台对于企业级互联网架构下的持续集成与持续交付的实践经验,首先介绍了阿里云云效平台的起源,之后对于企业并发研发项目交付流程存在痛点进行了介绍,并介绍了云效平台针对业务痛点所能够提供的服务和能力,并且结合实际案例分享了云效平台持续集成和持续交付实践. 在2017云栖大会-南京峰会上,阿里云高级技术专家鲁小川做了题为<企业级互联网架构下CI/CD实践>的精彩分享.所谓CI/CD也就是持续集成与

持续集成(三):最佳实践

[编者的话]这是持续集成系列的最后一篇,在本文中,作者列出了Martin Fowler撰写的CI白皮书里面的一些原则,并介绍了一些个人的实践经验. 引言 本文讲的是持续集成(三):最佳实践这是持续集成系列的第三篇.在这篇文章里,我们将介绍实现一个CI流程的一些最佳实践.笔者也将会根据自己的行业经验介绍一些真实世界里的提醒和警告. 快速回放:在本系列的第一篇里,我们介绍了CI的基本概念以及它和敏捷开发及DevOps团队文化的关联.在第二篇里,我们介绍了CI服务器的概念以及它是如何将各种实现一个CI

持续集成(CI)- 基础

持续集成(Continuous Integration)在多人的项目中有很重要的作用,本次把这方面的知识归总一下,为相关的实践提供一些参考. CI定义和优点 参考大师的定义: http://www.martinfowler.com/articles/continuousIntegration.html 持续集成作为一个很好的开发实践,主要有如下方面的一些价值: 减少风险 减少重复过程 在任何实践.任何地点生成可部署的软件 增强项目的可见性 对开发团队的软件产品建立起更强大的产品信息 CI的开发流

让你的CI跑起来-《持续集成》读书总结

持续集成已经被公认为极具价值的一项工程实践.在初始化一个项目时一个重要的任务就是搭建持续集成服务器,编写构建脚本.在我工作的所有项目中都引入了持续集成机制.它已经像氧气一样成为软件开发过程中的一项工程活动. <持续集成>站在理论的角度阐述了持续集成能够解决什么样的问题,如何解决,需要遵循那些原则等.这本书的副标题是-软件质量改进和风险降低之道(Improving Software Quality and Reducing Risk).副标题直指持续集成的两个好处:提高软件质量及降低项目风险.