赞
踩
gradle、git、jdk环境配置比较简单,主要说下Android SDK配置。Jenkins搭建完后还不能构建Android项目,因为没有Android开发环境,因此还需要配置Android开发环境。如果没配ANDROID_HOME环境的话,构建时会找不到响应的task,如 Task ‘assembleRelease’ not found in project ‘:app’.
下载SDK的方式有两种,一种是在宿主中下载然后拷贝到镜像中;一种是直接在镜像中下载。两者区别不大,都是要通过sdkmanager。
方法一
在宿主中下载sdkmanager或者sdk,然后通过命令复制到jenkins镜像中
docker cp <宿主filepath> :<镜像filepath>
如:docker cp commandlinetools.zip jenkins:/home/downloads
方法二
进入jenkins镜像中下载
1、进入镜像bash环境
docker exec -i -t -u root <镜像name> /bin/bash
2、下载sdkmanager
wget https://dl.google.com/android/repository/commandlinetools-linux-6609375_latest.zip
3、根据需要下载sdk
sh sdkmanager “platforms;android-28”
解压sdkmanager后如果报错:
Warning: Could not create settings
java.lang.IllegalArgumentException
at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.(SdkManagerCliSettings.
...
在 Manage Jenkins > Configure System 下配置全局变量,如
设置源码目录,Credentials设置为github账号
添加构建任务,需要注意工程可能不能直接构建,则需要指定构建目录Root Build script(如JsBridge是项目工程,但是app才是可构建的项目,则 Root Build script设置为 ${WORKSPACE}/app)
构建成功如图所示
生成的apk文件在 ${WORKSPACE}/app/build/outputs/apk/xxx目录下,如
为了应付Flavors的存在,可以自定义一些构建参数,如
相应的改变构建脚本
最后可视化构建操作为
比如选择Release、Flavors1,则构建任务为assembleFlavors1Release。
还可以把Jenkins中配置的参数替换到Gradle 脚本的gradle.properties中。
Jenkins自带的环境变量有 JOB_NAME、BRANCH_NAME等.
设置格式
效果如图
构建完成后给外部提供apk下载地址,然后发送通知或者做其他操作。
下载并启动tomcat,在conf/server.xml文件下配置文件下载地址,在把conf/web.xml中的listings参数修改为true,访问地址为:http:ip:port/apk/
<!-- server.xml --> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- 文件下载地址 --> <Context docBase="/home/jenkins_downloads" path="/apk" reloadable="true" crossContext="true"/> ... <!-- web.xml --> <servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <!-- false 修改为 true --> <param-value>true</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
构建完后把构建日志、包等信息发送给构建者,可以通过邮件或者其他方式,这里利用企业微信的群机器人。
通过PostBuildScript Plugin这个插件可以再在构建成功、失败后执行一些额外操作,比如shell脚本
脚本做的操作是先在tomcat下载目录创建目标文件夹(通过构建时间、渠道、构建类型等信息),然后把生成的apk拷贝过去,就可以通过tomcat地址访问了。
构建日志地址为:http://ip:port/job/${JOB_NAME}/${BUILD_NUMBER}/consoleText
下载地址为:http://ip:port/apk/${JOB_NAME}/${PRODUCT_FLAVORS}/${BUILD_TYPE}/${BUILD_DATE}
Date Parameter
Build Name and Description Setter
PostBuildScript Plugin
参考:
Android Jenkins+Git+Gradle持续集成-实在太详细
Android Command line tools sdkmanager always shows: Warning: Could not create settings
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。