Android项目持续集成环境
系统环境
系统环境centOS 7
制作jenkins的Docker镜像
安装docker。
执行 docker pull jenkins 拉取jenkins镜像。
将maven git 安装到镜像内
编写Dockerfile
docker运行jenkins的命令:
docker run -d -p 8080:8080 --name jenkins-master jenkins
这里将docker的8080端口映射到本级的8080端口,该docker实例的name叫 jenkins-master
挂载Volume(数据卷)
通过docker镜像运行实例的时候,docker会添加一个读写层用来记录文件的修改,一旦实例退出,该读写层消失。为了持久化数据,Docker引入Volume的概念。Volume是可以挂在到docker上的文件目录。
通过命令docker run -v
来创建一个volume并挂在到docker容器。
对jenkins
需要的数据:
cd ~ && mkdir jenkins
挂载的命令:
docker run -v ~/jenkins:/var/jenkins_home -d -p 8080:8080 --name jenkins-master jenkins
这样就将刚刚创建的jenkins目录挂载到docker的/var/jenkins_home
安装git
映射 ~/.gitconfig 到docker 容器内
安装Android SDK
cd ~
wget https://dl.google.com/android/android-sdk_r25.2.3-linux.tgz
tar xvzf android-sdk_r25.2.3-linux.tgz
mv android-sdk_r25.2.3-linux android-sdk
cd android-sdk
安装缺失的support 包,这个根据自己Android项目依赖的具体情况选择。
./tools/bin/sdkmanager "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha8"
./tools/bin/sdkmanager "extras;m2repository;com;android;support;appcompat-v7;24.2.1"
./tools/bin/sdkmanager "extras;m2repository;com;android;support;design;23.3.0"
centOS缺失Android SDK运行时必须的 lib
yum install -y libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1
jenkins构建Android项目的时候注意添加:
echo "sdk.dir=/var/android-sdk" >> local.properties
挂载AndroidSDK目录,之前docker命令变成
docker run -v ~/jenkins:/var/jenkins_home -v ~/android-sdk:/var/android-sdk -d -p 8080:8080 --name jenkins-master jenkins
jenkins配置
可以配置定时跑任务。
安装gitlab插件(jenkins第一次启动的时候会提示安装插件,选择默认的标准安装即可)可以方便githook,比如代码push就触发构建。
可以配置参数化构建,更具灵活性。
2017-06-11