jenkins+gitlab构建安卓自动编译环境

因工作关系接触到接触到安卓自动编译环境,网上的资料都推荐了jenkins,因为第一次接触安卓和jenkins,踩了不少的坑,有总结才有进步。

gitlab环境之前已经安装完成可用,具体步骤另外详解吧。本例目标是在gitlab可用前提下,通过jenkins将git仓库的代码自行编译打包,生成可用的apk安装文件。

一、相关环境

1 Linux Centos6.3 2.6.32-279.el6.x86_64

各相关软件版本

1     JDK 1.8.0    Gradle 2.13    SDK R24    git 2.7.1      jenkin 2.11

依赖软件安装,

123456    git安装,不可用yum直接的git版本,需要重新下载新版,本例用git2.7.1,编译安装即可,下载地址          https://www.kernel.org/pub/software/scm/git/git-2.7.1.tar.gz   本例中下载的,JDK,SDK,Gradle 都是解压后,设置环境变量即可用了   其中: JDK 解压目录为/usr/local/java       SDK解压目录为/an/android-sdk-linux       Gradle目录为/an/package/gradle-2.13

编辑.bashrc文件,设置环境变量,设置完成后使用source ~/.bashrc重新加载配置即可,具体设置如下:

1
#JDK环境变量        export JAVA_HOME=/usr/local/java       

                   export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH        export PATH=$JAVA_HOME/bin: $PATH

1
#SDK环境变量        export ANDROID_HOME=/an/android-sdk-linux

                    export PATH=$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$PATH

1
#gradle环境变量     export GRADLE_HOME=/an/package/gradle-2.13       

                   export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${GRADLE_HOME}/bin:${JAVA_HOME}:${PATH}

1 #使用java –version  android –h   gradle –version 三个命令测试安装是否成功。

哈哈哈,这里有一个坑,被我踩了,后面再详细说。

SDK更新,切换到android目录,执行tools/android update sdk –no-ui

两个小时左右,确保磁盘有足够空间,总大小6G左右

***因为源码语言指定用 sdk build-tools 22.0.1打包,所以需要另外装 build-tools的版本,方法如下

1、使用android list sdk –all   查看所有可用的更新包,找到 build-tools22.0.1编码为8

2、使用android update sdk –no-ui –all –filter 8安装build包

Note:   android list target   查看本地已经安装的SDK

二、安装jenkins

12   这次使用了jenkins的2.11版,实际上已经有了2.13版,直接到官网下rpm包安装就好  Jenkins 官网centos系统的下载页面:http://pkg.jenkins-ci.org/redhat/

三、jenkins的启动和初始化配置

1 启动:service jenkins start
1
 #**运行出错,出现如下提示*

*Starting Jenkins Jenkins requires Java7 or later, 

but you are running 1.6.0_24-b24 from /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre     

#在/etc/init.d目录下,编辑jenkins文件,

将java的目标地址/usr/lib/****改为实际安装的地址就可以了

1
使用netsta 可以查看到,8080端口已被监听

[[email protected] init.d]

netstat -apn | grep 8080 tcp   0   0 :::8080   :::*     LISTEN

使用 http://localhostip:8080即可以访问jenkins页面,如果不能访问,请检查iptables,本例中将iptables关闭,iptables相关知识请自行脑补
首次登录,出现的第一个页面是这样子的,要通过主机上一个文件来解锁,这个设计很奇妙

第二个页面为选择安装插件,因后面还有插件需要安装,这里选默认就好了,等待默认的插件安装完成。

完成后的主界面是这样子的


1、jenkins插件安装

123456 #系统管理---管理插件---可安装插件,选中以下插件安装     Git plugin      #必须     Gradle plugin   #必须      GitLab Plugin     Git client plugin     Gitlab Hook Plugin

2、初始化设置

  • 系统管理 –>全局化设置里增加以下键值

l  系统设置Global Tool Configuration

设置jdk、git 和gradle 安装路径(此处有坑)

四、新建构建任务

1、选择构建自由风格的软件项目

2、源码管理,选git,若没有出现 git选项,请回头重新安装Git plugin插件,填写gitlab仓库地址,增加gitlab仓库验证方式,gitlab仓库验证有点波折,多尝试就好

3、构建触发器

jenkins其实可以和 gitlab 的 hooks结合起来用,有推送就触发,懒得去研究了,

直接用了SCM排程5分钟检查一下,有新更新就打包,也挺好

第一个参数代表的是分钟 minute,取值 0~59;

第二个参数代表的是小时 hour,取值 0~23;

第三个参数代表的是天 day,取值 1~31;

第四个参数代表的是月 month,取值 1~12;

最后一个参数代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。

如H/5 * * * * 表示的就是每5分钟检查一次源码变化。

4、构建

增加Invoke Gradle script,gradle版本选我们自己增那个,不要用默认

5、构建后

(待研究)

这样子就可以开始构建了,点击立即构建,构建完成时显示蓝色就是构建成功,红色就是构建失败了

构建完成后的apk文件通常放在仓库目录的build/outputs目录下,其实可以用命令在构建完成后拷出去,这个自行脑补吧

五、jenkins加SDK的各种坑

1、构建时提示

Cannot run program "gradle" (in directory "/var/lib/jenkins/jobs/*****/workspace"): error=2, 没有那个文件或目录

网上关于没有文件和目录的问题,有各种说法,试了最后都没有解问题,其实是因为gradle的问题,记得我们第一步在系统设置里面指定了gradle的安装目录么,在新建构建任务的时候,在构建那一步,gradle 版本后面的下拉框要选,指定的版本,不能用默认,请往上翻,注意我画了三个箭头的那张图。

2、另外一个坑,提示无访问权限

我把gradle解压到了/root目录下面,jenkins运行时,会使用jenkins的身份运行gradle,就会出现权限不足,无法访问的情况。

3、Could not init /tmp/hudson1687987969108344361tmp

未安装 git,或在系统设置里未指定git安装路径

4、出现无法连接http 错误

12345 Failed to connect to repository : Command "/usr/local/bin/git -c core.askpass=true ls-remote -h http://*********************/****r.git HEAD" returned status code 128: stdout:  stderr: fatal: Unable to find remote helper for ‘http‘

请检查git版本,删除centos自带的 git,编译安装2.7以上版本

5、提示java内存溢出

1 java.lang.OutOfMemoryError: Java heap space

更改java的内存栈大小:set JAVA_OPTS= -Xms1024m -Xmx1024m

六、所需要依赖到的库

libstdc++-4.4.7-17.el6.i686

zlib-1.2.3-29.el6.i686

zlib-deve

参考资料:http://www.jianshu.com/p/526fbd59750e

时间: 2024-10-17 07:53:42

jenkins+gitlab构建安卓自动编译环境的相关文章

jenkins+gitlab+maven+tomcat持续集成环境安装配置

jenkins+gitlab+maven+tomcat,该环境主要实现自动构建部署java web应用. 其工作流程是:提交代码到gitlab--jenkins触发构建任务--maven编译打包--jenkins将war包部署到tomcat. 安装JDK #安装jdk1.8 tar zxvf jdk-8u77-linux-x64.gz #设置环境变量 #vi /etc/profile export JAVA_HOME=/usr/local/jdk1.8.0_77 export JAVA_BIN=

Jenkins + gitlab 集成 实现自动构建

Jenkins + gitlab 集成后,实现的功能是 开发写好代码提交至 gitlab 上,当开始 push 到 gitlab 上之后,jenkins 自动帮我们立即构建 一.安装 gitlab 钩子脚本 注意:jenkins 不论想实现什么功能,都需要安装插件!! 依次点击:系统管理==>>插件管理==>>可选插件 1.配置钩子脚本触发器 至此触发器就配置完了 2.回到gitlab界面配置下来我们回到gitlab端上传代码进行测试 [[email protected] test

1.GitLab和Jenkins 结合构建持续集成(CI)环境

14.1 持续集成概述及运行流程 14.1.1 持续集成概述 持续集成概述:持续集成(Continuous integration)持续集成是指开发者在代码的开发过程中, 可以频繁的将代码部署集成到主干,并进行自动化测试. 持续交付:持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境. 持续部署:在持续交付的基础上,把部署到生产环境的过程自动化. 14.1.2 jenkins 和 Gitlab 概述 Jenkins 概述:是一个开源软件项目,是基亍 Java 开发的一种持续集成工具,

GitLab+Jenkins结合构建持续集成(CI)环境

持续集成概述 持续集成概述:持续集成(continuous integration)持续集成是指开发者在代码的开发过程中,可以频繁的代码部署集成到主干,并进行自动化测试. 持续交付:持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境. 持续部署:在持续交付的基础上,把部署到生产环境的过程自动化. 版本控制系统概述 什么是版本控制系统 版本控制系统(Version Control System): 是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 版本控制系统不仅

Jenkins自动化构建(一)环境搭建

环境搭建需要先知道的内容: Jenkins是开源的持续集成工具,可以进行持续集成.自动构建.自动编译和部署. 很多项目都在使用Git.SVN进行代码管理:Maven管理多模块和项目依赖 1.安装Jenkins 下载地址:https://jenkins.io/download/ 这里我们下载的是Window环境 安装过程,和安装其它软件大同小异,这里就不多说了. 安装完成后,可以看一下服务,里有Jenkins服务,我们启动 之后打开,网址(安装过程中,会有提示):http://127.0.0.1:

4、Jenkins持续集成之maven编译

4.Jenkins持续集成之maven编译.md 简介     Jenkins是一个开源的持续集成工具,应用Jenkins搭建持续集成环境,可以进行自动构建.自动编译和部署,非常方便.在服务器比较少的情况下,Jenkins的优势并不明显,但是随着项目发展,服务器数量的增加,Jenkins的优势就会凸显出来,可以很好的提高效率,减少很多人工操作.现在公司的开发都是使用Git管理代码,Maven管理多模块和项目依赖.Jenkins支持两种工程:FreeStyle工程和Maven工程.如果代码是用Ma

Jenkins Job构建

Jenkins job介绍 ? Jenkins Freestyle与Pipeline Job区别 ? ? Jenkins Job构建配置 一 .环境准备 1.配置Jenkins server本地Gitlab DNS 2.安装git client, curl工具依赖 3.关闭系统Git http.ssIVerify安全认证 4.添加Jenkins后台Git client user与email 5.添加Jenkins后台 Git Credential凭据 进入路径-工作台>系统管理>系统配置>

Jenkins搭建.NET自动编译发布远程环境

继上一篇文章Jenkins搭建.NET自动编译发布本地环境 发布到本地成功后,接下来配置发布到远程环境. Build配置——发布到本地 根据前面VS中发布项目,生成的CustomProfile2 来配置 1.MSBuild Build File:配置为.\angularDemo\angularDemo.csproj 或者C:\Program Files (x86)\Jenkins\workspace\FirstSite\angularDemo.sln都可以. 2.Build的命令行参数: 配置参

传统云环境下的CI/CD操作手册(六)jenkins手动构建示例及实现自动触发构建

构建项目位置/var/lib/jenkins/workspace/jenkins_project_name手动构建:1 新建自由风格jenkins项目---构建---执行shellrm -rf project1/git clone [email protected]:group1/project1.git ssh 192.168.1.17 "/etc/init.d/tomcat stop"ssh 192.168.1.18 "/etc/init.d/tomcat stop&qu