Jenkins安装
Mac上
Jenkins官网:https://jenkins.io
- Mac上安装建议用命令安装
brew install jenkins
- 启动
jenkins
Ubuntu上
- 添加地址
sudo wget -q -O - [http://pkg.jenkins.io/debian-stable/jenkins.io.key](http://pkg.jenkins.io/debian-stable/jenkins.io.key) | sudo apt-key add -
- 然后添加Debian pacakage到源清单
/etc/apt/sources.list.d
sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
- 升级获取最新的Jenkins
sudo apt-get update
- 安装Jenkins
sudo apt-get install jenkins
- 开启Jenkins服务
sudo service jenkins start
- 关闭Jenkins服务
sudo service jenkins stop
运行成功后,在浏览器访问http://localhost:8080
,首次运行会要求输入管理管理员密码,密码在图中红色的路径文件夹里面
建议选择推荐安装
创建用户
配置Jenkins
全局工具配置
进入系统管理-全局工具配置,配置Gradle
在这里同时可以配置
JDK``Git
如果环境变量中已经配置好了JDK和Git,在这里可以不配置,默认即可
配置AndroidSDK及其它环境变量
进入系统管理-系统设置,添加环境变量
上图的配置是因为我的电脑中已经有了Gradle,如果电脑中没有Gradle,可以直接在全局工具配置中添加,选择自己的需要Gradle版本即可
新增任务配置
选择构建一个自由风格的软件项目
General
可以添加构建参数
勾选参数化构建过程
,图中添加的是选项参数
,用于构建时选择构建的类型。其他参数根据自己的Gradle脚本
实际情况或者项目需求添加。
源码管理
有三个选项
- None 选择本地的项目
- Git
-
Subversion(SVN)
添加证书,填写规则如图,其它选项可以不填写。
构建
选中invoke gradle
通过调用gradle
脚本进行构建,选择在系统管理中配置的gradle
的版本,这里为gradle4.4
然后在Tasks输入打包命令
clean assemble${PRODUCT_FLAVORS}${BUILD_TYPE}
首先执行clean
,然后执行assemble
进行打包。以PRODUCT_FLAVORS
选择bate
,BUILD_TYPE
为Release
为例,则实际执行的命令为
clean assemblebateRelease
其中
PRODUCT_FLAVORS
和BUILD_TYPE
为General
中添加的参数
添加自定义参数
比如添加一个自定义的参数,来控制打包是的版本号。参数名字为VERSION_CODE
,Tasks输入的打包命令为
clean assemble${PRODUCT_FLAVORS}${BUILD_TYPE} -PVERSION_CODE=${VERSION_CODE}
其中
VERSION_CODE
为General
中添加的参数
- 在项目获得添加的自定义参数
versionCode project.hasProperty('VERSION_CODE') ? Integer.parseInt(VERSION_CODE) : 1
然后选中Pass job parameters as Gradle properties
这样才能将我们自定义参数在打包时传递到gradle脚本中
指定module 打包 'gradle app:assembleRelease' 其中
app
为module的名称
构建
直接点击右侧的
Build whit Parameters
按钮直接构建,然后填写自己设置的构建参数,然后开始构建如果失败,可以选择
控制台输入
查看具体日志在Linux上安装AndroidSDK
下载tools
wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
解压
unzip sdk-tools-linux-4333796.zip
创建SDK目录
mkdir sdk
将解压的文件移动到创建的目录下
mv tools sdk/
安装需要的资源
进入~/sdk/tools/bin
目录下,安装编译所需要的资源
./sdkmanager "platform-tools"
./sdkmanager "platforms;android-23"
安装过程中需要同意协议,在命令行中输入
Y
集合
如果安装过程中有警告,可以用如下命令
touch [警告的目录]
生成对应的文件
如果编译成功中出现如下警告
A problem occurred configuring project ':app'.
> Failed to install the following Android SDK packages as some licences have not been accepted.
platforms;android-26 Android SDK Platform 26
build-tools;27.0.3 Android SDK Build-Tools 27.0.3
To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager.
通过以下命令同意所有的licenses
./sdkmanager --licenses //同意所有的licenses
*** 常见错误
sudo yum install java-1.8.0-openjdk-devel
There's no such executable git in PATH: /sbin, /usr/sbin, /bin, /usr/bin
没有安装git
FAILURE: Build failed with an exception.* What went wrong:A problem occurred configuring root project 'GearApplication'.
> Could not resolve all dependencies for configuration ':classpath'.
> Could not download guava.jar (com.google.guava:guava:17.0)
> Could not get resource 'https://jcenter.bintray.com/com/google/guava/guava/17.0/guava-17.0.jar'.
> Could not GET 'https://jcenter.bintray.com/com/google/guava/guava/17.0/guava-17.0.jar'.
> akamai.bintray.com: unknown error
没有安装maven
The SDK directory '/root/sdk' does not exist
构建由于SDK路径的问题失败了。但是我在linux上检查了一下路径,发现路径在我的环境里的确是/root/android-sdk-linux。经过Google,我发现问题出在权限上。我的SDK目录处于Root的根目录,通常情况下,unix权限不允许其他用户(指jenkins)进入这个目录。我们可以把我们的SDK目录切换到其他位置(非根目录)。
mv /root/sdk /opt/