Docker + Jenkins + Cordova建设移动端打包平台
来源:互联网 发布:淘宝网论坛首页 编辑:程序博客网 时间:2024/06/18 09:07
背景
随着公司移动端开发任务越来越多,支持各项目组快捷方便的开发移动端应用越来越重要。因此,需要在公司的公共移动平台上增加基于H5的移动打包部署功能。经过考察,apache cordova在这方面表现比较突出,本文主要说明如何基于cordova构建一个移动打包部署平台。
实现思路
使用cordova编译打包H5的移动应用,集成到Jenkins的构建任务,同时利用Jenkins支持参数式编译特性,实现支持多应用的移动端打包平台。
利用Docker将打包平台封装成镜像,便于以后的多节点部署和扩展。
将编译打包环境构建成Docker Image
- 首先编写Dockerfile,将Jenkins和Cordova环境设置好:
FROM jenkinsMAINTAINER Yasong Yao "yaoyasong@gmail.com"RUN dpkg --add-architecture i386 && \ apt-get update -y && \ apt-get install -y libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 && \ rm -rf /var/lib/apt/lists/* && \ apt-get autoremove -y && \ apt-get cleanENV ANDROID_VERSIONS android-18,android-19,android-20,android-21,android-22ENV ANDROID_BUILD_TOOLS 22.0.1ENV ANDROID_HOME /opt/android-sdk-linuxENV PATH ${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-toolsENV ANDROID_FILE android-sdk_r24.4.1-linux.tgzENV TERM linuxCOPY ${ANDROID_FILE} /opt/RUN cd /opt && \ tar xzf ${ANDROID_FILE} && \ echo y | android update sdk -u -a --filter tools,platform-tools,${ANDROID_VERSIONS},build-tools-${ANDROID_BUILD_TOOLS} && \ rm ${ANDROID_FILE}RUN apt-get update && apt-get install -y nodejs npm nodejs-legacy && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*#Install cordova globallyRUN npm install -g cordova
利用Jenkins镜像,安装android编译环境和nodejs环境,最后利用npm安装cordova。
- 根据Dockerfile编译成镜像,放置到内部的Docker registry上,便于以后使用。
运行
docker build -t local/jenkins_cordova .
然后就可以去喝茶了,经过很长的过程后,镜像应该就会构建完成。
运行镜像,启动Jenkins服务
docker run -d -p 8080:8080 -p 50000:50000 -v /etc/localtime:/etc/localtime:ro -v /data/jenkins_cordova/volume:/var/jenkins_home\ --name jenkins_cordova --env -Duser.timezone=GMT+08"\ local/jenkins_cordova
正常启动后,应该就可以访问Jenkins服务
在Jenkins上创建Android通用构建任务
- 创建一个自由风格的软件项目:android_build
- 增加一个File Parameter:upload/app.zip
- 增加两个String parameter:APP_ID,APP_NAME
- 增加一个Execute shell,填入如下cordova构建脚本:
rm -rf ${WORKSPACE}/${APP_ID}cordova create ${APP_ID} ${APP_ID} ${APP_NAME}cd ${APP_ID}/wwwrm -rf *mv ${WORKSPACE}/upload/app.zip .unzip app.ziprm -f app.zipcd ..cordova platforms add androidcordova build androidcp ${WORKSPACE}/${APP_ID}/platforms/android/build/outputs/apk/*.apk ${WORKSPACE}
使用android_build编译打包Android移动应用
- 选择android_build,运行Build with Parameters,弹出输入选择框
- 将要编译的h5项目打包成zip文件
- 点击开始构建启动任务
- 任务运行完成,就可以在工作空间看到构建成功的Android程序包,下载到手机试试看吧。
后续改进
上面描述了通用移动打包平台的主要思路和实现,要构建一个易用的打包部署平台,后续可以考虑
- 使用Jenkins Master + Slave方式提高构建的性能
- 参考同样的方式实现ios等其它移动打包
- 集成cordova插件、自定义信息等
0 0
- Docker + Jenkins + Cordova建设移动端打包平台
- 【移动端打包平台搭建】使用Jenkins搭建iOS/Android持续集成打包平台
- 移动跨平台开发---cordova(三)
- 移动跨平台开发---cordova(四)
- Docker平台下创建Jenkins Worker节点
- 移动端跨平台开发框架 Cordova 学习笔记(一) 环境搭建及创建第一个 Cordova Android APP
- 移动APP漏洞自动化检测平台建设
- 移动APP漏洞自动化检测平台建设
- 移动APP漏洞自动化检测平台建设
- 移动APP漏洞自动化检测平台建设
- 移动APP漏洞自动化检测平台建设
- 移动APP漏洞自动化检测平台建设
- 移动APP漏洞自动化检测平台建设
- 移动APP漏洞自动化检测平台建设
- Jenkins Gitlab持续集成打包平台搭建
- Jenkins Android自动打包平台配置
- Jenkins Gitlab持续集成打包平台搭建
- Jenkins Gitlab持续集成打包平台搭建
- 提供向后的导航
- maven "Generating project in Batch mode"问题的解决
- Spring+Mybatis多数据源配置(四)——AbstractRoutingDataSource实现数据源动态切换
- 实现Comparator方式排序
- missing 64-bit support(添加了arm64依然报错的解决方式)
- Docker + Jenkins + Cordova建设移动端打包平台
- CodeForces 540D Bad Luck Island (概率dp)
- 广义表
- 利用strlwr()任意大写字母转小写
- 存储过程
- AndroidStudio环境下git使用步骤
- F
- ffmpeg bit_rate分析
- linux设备驱动归纳总结(二):模块的相关基础概念