作者: | 来源:互联网 | 2023-08-23 19:09
背景随着公司移动端开发任务越来越多,支持各项目组快捷方便的开发移动端应用越来越重要。因此,需要在公司的公共移动平台上增加基于H5的移动打包部署功能。经过考察,apachecordov
背景
随着公司移动端开发任务越来越多,支持各项目组快捷方便的开发移动端应用越来越重要。因此,需要在公司的公共移动平台上增加基于H5的移动打包部署功能。经过考察,apache cordova在这方面表现比较突出,本文主要说明如何基于cordova构建一个移动打包部署平台。
实现思路
使用cordova编译打包H5的移动应用,集成到Jenkins的构建任务,同时利用Jenkins支持参数式编译特性,实现支持多应用的移动端打包平台。
利用Docker将打包平台封装成镜像,便于以后的多节点部署和扩展。
将编译打包环境构建成Docker Image
- 首先编写Dockerfile,将Jenkins和Cordova环境设置好:
FROM jenkins
MAINTAINER 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 clean
ENV ANDROID_VERSIONS android-18,android-19,android-20,android-21,android-22
ENV ANDROID_BUILD_TOOLS 22.0.1
ENV ANDROID_HOME /opt/android-sdk-linux
ENV PATH ${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
ENV ANDROID_FILE android-sdk_r24.4.1-linux.tgz
ENV TERM linux
COPY ${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/*
RUN 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}/www
rm -rf *
mv ${WORKSPACE}/upload/app.zip .
unzip app.zip
rm -f app.zip
cd ..
cordova platforms add android
cordova build android
cp ${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插件、自定义信息等