一、需求说明:

因诸多因素影响以及条件的限制,当前我们APP的Android端的打包过是手动通过开发工具打包的;这样产生的问题是:

一、Android端的APK的产出得依赖开发人员,如果开发人员不在公司或者电脑旁,测试等部门的同事要打包测试,那么测试部门就没得相对应的包用;

二、因为是手动打出来的包,对Android端的开发人员的专业技能、开发经验、对我们的项目的熟悉程度要求较高,而且容易出错,工作量增加,过程也比较繁琐。

为了解决上述问题以及响应产品部、QA部等部门的需求,经过大家讨论后需求如下:

1、自动打包需求

按jenkins任务配置,在设定的时间点执行每日打包任务。

拉取指定的开发分支的代码,然后执行自动打包脚本,提供相应的下载地址。

2、手动打包需求

jenkins任务可以设定tag或分支,打包脚本按照jenkins设定的参数执行打包脚本。

二、需求分析:

综合上述需求以及结合当前实际情况,分析如下:

1、部署环境

因为当前我们是在准生产环境开发的、测试的部门也是在准生产环境进行测试的,所以当前请运维部门的同事先做准生产环境,后续如果增加开发、测试环境,再增加相对应的部署环境,生产上线的包,因为APP是要到阿里加固以及重新签名的,所以生产当前运维部的同事暂时不用考虑该环境问题。

2、服务端留存版本

依据jenkins的任务配置,当前服务端保留三个版本:

(1)设定的时间点执行每日打包的版本,

(2)设定tag打出来的版本,

(3)设定分支打出来的版本。

建议每个版本保留一周时间,然后服务端自动删掉。

3、下载地址

因为我们是用jenkins构建的,jenkins对任务的产出物提供有相应的下载地址,所以运维部得提供登录jenkins以及在jenkins下载该产出物的权限。

三、软件环境配置:

  一、部署机器

1、ip:10.255.12.10

2、端口:jenkins 默认端口

3、硬盘存储要求:30G

4、CPU:1核

5、内存:4G

6、机器系统:Linux

  二,插件版本要求

软件工具

版本编号

版本说明

Jenkins

待定

 

Java_JDK

1.8

一定要这个版本

 

Gradle

2.1.0

建议

 

Android_SDK

23

后期会更新为高版本

 

git

2.4.6

当前服务端用该版本

 

四、环境部署步骤:

一、Jenkins简介

Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时 Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。Jenkins 的前身是Hudson是一个可扩展的持续集成引擎。

Jenkins安装与配置

下载地址:http://mirrors.jenkins-ci.org/war/latest/jenkins.war。将下载的jenkins.war包直接放到tomcat下的webapps目录,启动tomcat即可安装完成,在浏览器输入:127.0.0.1:8080/Jenkins或者localhost:8080,出现下面的界面便是安装成功。

端口问题:在安装的过程中可能会出现报端口错误的问题,请修改为9090。

安装页面的系统级别的的密码问题,请在机器本地一定要找到对应的文件,简单的复制、粘贴当然jenkins似乎不认。

编码问题:进入jenkins系统管理页面,会出现如图提示,可修改tomcat的server.xml配置,在Connector  标签添加上 URIEncoding="UTF-8" 。

二、JDK安装

1、先从网上下载jdk(jdk-8u1-linux-i586.rpm),下载地址:http://www.oracle.com/technetwork/Java/javase/downloads/jdk-7u1-download-513651.html,下载后放在/home目录中,当然其它地方也行。

2、进入安装目录
#cd /home
#cp jdk-7u1-linux-i586.rpm /usr/local
#cd /usr/local
给所有用户添加可执行的权限

#rpm -ivh jdk-7u1-linux-i586.rpm

安装过程如图所示:

3、设置环境变量

#vi /etc/profile

打开后,在文档最下方加上以下环境变量配置代码:

export JAVA_HOME=/usr/java/javajdk1.7.0_01
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

注意:export PATH=$JAVA_HOME/bin:$PATH,注意将$PATH放到最后。以免造成新旧版本问题。

4、检查JDK是否安装成功。
#java -version
如果看到JVM版本及相关信息,即安装成功!

如图:

三、下载Anndroid SDK

下载地址:https://developer.android.com/studio/index.html

然后更新sdk

#tools/android update sdk --no-ui

四、配置插件

1、添加git,gradle,lint

2jenkins环境配置

根据下图把JDK、AndroidSDK、git、gradle环境变量一一添加进去。

五、创建执行任务

一、创建任务,如下图所示:

 二、添加项目描叙及参数配置

三、拉取服务端代码

四、添加脚本

原脚本如下所示:

五、保存构建并应用

六、 创建上传到下载平台任务

创建上传到下载平台任务同本文创建构建任务一样,但是要注意的是在执行前面任务后接着构执行任务。 

构建上传到下载平台的Linux脚本:

#!/bin/bash

#### upload apk ####

curl -X "POST" "http://api.fir.im/apps" -H "Content-Type: application/json" -d "{\"type\":\"android\", \"bundle_id\":\"com.haier.hairy\", \"api_token\":\"987daaff2f7cc0dce316349e05ffa879\"}"  > /opt/key

 

KEY=`awk -F '"' '{print $34}' /opt/key`

TOKEN=`awk -F '"' '{print $38}' /opt/key`

 

BUILD=`awk 'NR==26 {print $2}'  /opt/apache-tomcat-9.0.0.M10/webapps/jenkins/jobs/Android-App1/workspace/Hairy/build.gradle`

VERSION=`cat /opt/apache-tomcat-9.0.0.M10/webapps/jenkins/jobs/Android-App1/workspace/Hairy/build.gradle | grep versionName|awk -F '"'  '{print $2}'`

 

curl -F "key=${KEY}" -F "token=${TOKEN}" -F "file=@/opt/apache-tomcat-9.0.0.M10/webapps/jenkins/jobs/Android-App1/workspace/Hairy/build/outputs/apk/Hairy-debug.apk" -F "x:name=海融易" -F "x:version=${VERSION}" -F "x:build=${BUILD}" -F "x:release_type=" -F"x:changelog=" http://upload.qiniu.com

 

rm -rf /opt/key

 

Android自动化打包部署及配置文档相关推荐

  1. 手把手教你配置:Jenkins+Github+Webhook +Nginx自动化打包部署Vue项目

    前面的话 为了前端项目的工程化,减少项目发布环境的部署,实现自动化打包部署. 传统的做法,在服务器初始一个 git 仓库,然后每次代码更新后,手动去拉取,次数多了也就烦了,而自动化打包部署每次只需在项 ...

  2. Worldwind配置文档

    Worldwind配置文档 前言: 本人在网络上各位大神的一阵阵忽悠了两天,迷迷糊糊了两天,终于在最后时刻静下心认认真真自己阅读官方的文档,完成了对 worldwind的配置. 配置前的准备:     ...

  3. 使用jenkins自动化打包部署Vue项目。详细教程。

    此教程 jenkins是直接部署到linux服务器上.服务器系统:CentOS 7.3 64位. 流程:jenkins关联码云仓库,点击立即构建,执行shell进行构建,打包,把打包后的dist目录文 ...

  4. python 自动化框架打包_听说很多人都不会打包,教你Python实现前端自动化打包部署!...

    作为一名专职前端开发的我,为了帮助解决目前工作中的一些繁琐的工作(主要是处理 excel数据),解放程序员双手,前阵子就刚刚入了 python 的坑,毕竟也算是门工具语言,都已经加入少儿编程了,哈哈哈 ...

  5. oracle11gr2 active data guard,Oracle11gR2 Aactive DataGuard(手动)装配部署及维护文档(三)之升级及rman...

    Oracle11gR2 Aactive DataGuard(手动)安装部署及维护文档(三)之升级及rman l          第六部分: dataguard其它管理问题 一.滚动升级DG 升级概要 ...

  6. jenkins自动化打包部署,jenkins执行sh脚本不退出问题

    介绍 Jenkins是开源软件项目,主要用来自动化打包部署.使用jenkins彻底告别手动部署的麻烦与繁琐. 安装部署jenkins 官方下载地址 启动jenkins war包 登入jenkins 设 ...

  7. vuecli打包后的dist目录无法访问_听说很多人都不会打包,教你Python实现前端自动化打包部署!...

    作为一名专职前端开发的我,为了帮助解决目前工作中的一些繁琐的工作(主要是处理 excel数据),解放程序员双手,前阵子就刚刚入了 python 的坑,毕竟也算是门工具语言,都已经加入少儿编程了,哈哈哈 ...

  8. oracle adg维护,Oracle11gR2 Aactive DataGuard(手动)装配部署及维护文档(三)之升级及rman...

    Oracle11gR2 Aactive DataGuard(手动)安装部署及维护文档(三)之升级及rman l          第六部分: dataguard其它管理问题 一.滚动升级DG 升级概要 ...

  9. 阿里云客服机器人人工服务配置文档

    配置之前需要购买相应的产品,获得相应的授权使用 阿里云客服机器人配置文档 1.登录阿里云 链接: https://account.aliyun.com/login/login.htm?oauth_ca ...

最新文章

  1. awk4.0 — awk格式化
  2. ORACLE11g 没有控制文件如何通过rman备份恢复数据的详细实战过程
  3. r指定位置插入一列数值
  4. 平方环法_2019环法挑战赛加速诸暨“运动之城”建设 推动“体育+旅游”新热潮...
  5. 智能手机的开放与封闭刍议
  6. java代码测试---插入排序和选择排序
  7. 【C/C++学院】0828-数组与指针/内存分配/数据结构数组接口与封装
  8. Atitit io读取文件法 目录 1. 文件法 1 1.1. 异步读取文件: 1 1.2. 2.同步读取方法 1 1.3. 二进制读文件: 1 2. 读取api规范 1 3. Atitit 按照
  9. (附源码)Python在线办公系统 毕业设计 071116
  10. 前端使用goeasy
  11. web前端面试过程流程和建议
  12. 雷蛇游戏软件显示无法访问服务器,亦工作亦游戏 Razer雷云设置技巧-鼠标设置软件...
  13. F200——搭载基于模型设计的国产开源飞控系统无人机
  14. Jupyter Notebook 更改默认浏览器
  15. 2017EC-Scapegoat-(思维+优先队列贪心)
  16. 群发“站内信”的实现(摘抄)
  17. Neokylin7安装gedit
  18. 6个Python数据分析神器~
  19. 一网打尽win10 Google Chrome浏览器打开后默认 桔梗 页面
  20. 【Python大作业】耦合网络信息传播

热门文章

  1. 解决程序缺少richtx32.ocx无法运行问题
  2. 51单片机抢答器c语言代码,使用51单片机实现抢答器的设计资料和代码说明
  3. CIE LAB色差公式与 CIE DE 2000色差公式计算类
  4. 通过Office 2007发布Blog
  5. 【连载】【FPGA黑金开发板】Verilog HDL那些事儿--12864(ST7565P)液晶驱动(十三)
  6. 程序员中"5%神话";刘未鹏:为什么你应该写博客
  7. 小清新业务汇报PPT模板
  8. 华大HC32F460NMI中断实验
  9. 【调剂】​2023年航天二院硕士研究生招生调剂开始啦!
  10. 3b1b视频《奥数级别的数数问题》笔记