前文中已经介绍了什么是cordova 为何要用cordova,基础的环境搭建以及如何编译打包生成APK安装包,接下来咱们介绍如何使用Jenkins 自动化编译打包生成APK安装包!
php
在搭建jerkins以前首先须要一台服务器环境,一个虚拟机或者阿里云租一台,这里我以虚拟机为例子:html
Docker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,能够把货物规整的摆放起来。而且各类各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不须要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就能够用一艘大船把他们都运走。node
docker就是相似的理念。如今都流行云计算了,云计算就比如大货轮。docker就是集装箱。mysql
不清楚docker如何安装的小伙伴请步个人另外一篇文章 docker安装篇linux
简单的理解,Jenkins只不过是持续集成的一个工具而已!持续集成是什么?传送门在这里 持续集成是什么?android
在这里我准备了一篇我在N年前学习Jenkins的时候留下的文章,传送门Ubuntu下搭建Jenkinsgit
FROM jenkins/jenkins:lts-slim MAINTAINER shuoer 690515591@qq.com #切换为root用户 USER root #更新当前的shell环境 SHELL ["/bin/bash", "-c"] #指定android的版本 ARG ANDROID_VERSIONS=android-26 #指定build-tools的版本 ARG ANDROID_BUILD_TOOLS=26.0.2 #指定node的版本 ARG NODE_VERSION=setup_10.x #android-sdk的home地址 ENV ANDROID_HOME /opt/android-sdk-linux ENV PATH ${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools:/opt/gradle-4.1/bin #用于干掉每次编译时老是从Google下载gradle编译工具 ENV CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL='https://raw.githubusercontent.com/zhaoshuoer/my-docker/master/node/app/public/gradle-4.1-all.zip' #安装node、cordova环境 RUN curl -sL https://deb.nodesource.com/${NODE_VERSION} | bash && \ apt-get install -y nodejs && \ apt-get install -y build-essential && \ rm -rf /var/lib/apt/lists/* && \ npm install -g cordova && \ npm install -g yarn && \ curl -O https://get.docker.com/builds/Linux/x86_64/docker-latest.tgz && \ tar zxvf docker-latest.tgz && \ cp docker/docker /usr/local/bin/ && \ rm -rf docker docker-latest.tgz WORKDIR /opt #安装android环境 RUN curl -O https://downloads.gradle.org/distributions/gradle-4.1-bin.zip && \ unzip gradle-4.1-bin.zip && \ curl -O http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz && \ tar zxvf android-sdk_r24.4.1-linux.tgz && \ mkdir /root/.android && \ touch /root/.android/repositories.cfg && \ echo y | android update sdk \ -a \ --no-ui \ --filter \ tools,platform-tools,${ANDROID_VERSIONS},build-tools-${ANDROID_BUILD_TOOLS} && \ rm -rf android-sdk_r24.4.1-linux.tgz && \ rm -rf gradle-4.1-bin.zip # 将 `jenkins` 用户的组 ID 改成宿主 `docker` 组的组ID,从而具备执行 `docker` 命令的权限。 ARG DOCKER_GID=999 ARG DOCKER_PORT=8080 USER root:${DOCKER_GID} EXPOSE ${DOCKER_PORT}
#若是你有梯子的话您大可等上两三个小时去编译出来 $ docker build -t jenkins . #若是您不想编译,我也提供了编译好的Jenkins镜像 #从docker官方hub下载镜像 $ docker pull shuoer/jenkins:cordova #或者您也能够从阿里云下载镜像地址为: $ docker pull registry.cn-hangzhou.aliyuncs.com/shuoer/jenkins:cordova
#将该脚本保存为start-jenkins.sh docker run \ -d \ --rm \ -p 8080:8080 \ -p 50000:50000 \ -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai \ -v "$PWD/jenkins_home":/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ --name jenkins \ shuoer/jenkins:cordova
执行该脚本下载jenkins的docker镜像并运行该容器
打开浏览器查看下jenkins是否启动,端口为8080
当看到改界面的时候,恭喜您jenkins安装成功了!接下来咱们须要拿到jenkins的密钥来解锁安装jenkinsgithub
#进入到jenkins的容器内部 $ docker exec -it jenkins bash #打印jenkins的密钥 $ cat /var/jenkins_home/secrets/initialAdminPassword
将密钥粘贴到浏览器中 点击 Continue 按钮 进入安装插件界面
因为网络缘由,安装过程可能会有点慢!
插件安装完成以后建立一个管理员帐户
帐户建立完成以后,进入jenkins 到此jenkins的安装已所有完成
sql
建立一个自由风格的项目
添加源码管理
添加构建步骤
添加编译脚本
docker
添加完成以后点击保存,构建cordova android 版 生成 APK 安装包
在首次编译的时候因为须要下在各类依赖包耗时会比较长
若是将以上技术栈描述清楚须要不小的篇幅,因此我会将文章进行拆分: