jenkins构建脚本:

[root@localhost tomcat]# cat move.sh
#!/bin/bash
# author lql release_dir=/data/android_git/app/build/outputs/apk/tuji/release
debug_dir=/data/android_git/app/build/outputs/apk/tuji/debug
releasetest_dir=/data/android_git/app/build/outputs/apk/tuji/releaseTest function release ()
{
cd /data/android_git && gradle clean
cd /data/android_git && gradle assembleTujiRelease if [ -d $release_dir ];then
cd $release_dir
apk=`ls -lt|grep .apk|awk -F " " '{print $NF}'`
new_time=`date +%Y%m%d%H%M`
version=`echo $apk | awk -F ".apk" '{print $1}'`
new_apk=$version-$new_time.apk
mv $apk $new_apk
cp -rf $release_dir/$new_apk /data/download/release
python3 /home/tomcat/jenkins_android_test.py $new_apk release
else
python3 /home/tomcat/jenkins_android_test.py path_release_error
fi
} function debug ()
{
cd /data/android_git && gradle clean
cd /data/android_git && gradle assembleTujiDebug if [ -d $debug_dir ];then
cd $debug_dir
apk=`ls -lt|grep .apk|awk -F " " '{print $NF}'`
new_time=`date +%Y%m%d%H%M`
version=`echo $apk | awk -F ".apk" '{print $1}'`
new_apk=$version-$new_time.apk
mv $apk $new_apk
cp -rf $debug_dir/$new_apk /data/download/debug
python3 /home/tomcat/jenkins_android_test.py $new_apk debug
else
python3 /home/tomcat/jenkins_android_test.py path_debug_error
fi
} function releasetest ()
{
cd /data/android_git && gradle clean
cd /data/android_git && gradle assembleTujiReleaseTest if [ -d $releasetest_dir ];then
cd $releasetest_dir
apk=`ls -lt|grep .apk|awk -F " " '{print $NF}'`
new_time=`date +%Y%m%d%H%M`
version=`echo $apk | awk -F ".apk" '{print $1}'`
new_apk=$version-$new_time.apk
mv $apk $new_apk
cp -rf $releasetest_dir/$new_apk /data/download/releasetest
python3 /home/tomcat/jenkins_android_test.py $new_apk releasetest
else
python3 /home/tomcat/jenkins_android_test.py path_releasetest_error
fi
} case $1 in
release)
echo release runing
release;
;;
debug)
echo debug ruing
debug;
;;
releasetest)
echo releasetest runing
releasetest;
;;
*)
release;
debug;
releasetest;
;;
esac

构建成功WEBHOOK提醒

#!/usr/local/python-3.6.4/bin/python3
# -*- coding:UTF-8-*-
# Author: lql from urllib import request
import json
from sys import argv import time
#获得当前时间时间戳
now = int(time.time())
#转换为其他日期格式,如:"%Y-%m-%d %H:%M:%S"
timeStruct = time.localtime(now)
strTime = time.strftime("%Y-%m-%d %H:%M:%S", timeStruct) access_token = "" #def send_msg(mobile, item_name):
def send_msg(time_str,apk_name,download_dir=False):
if download_dir:
content=apk_name + ' ' + time_str + ' ' + 'http://ip?/download/' + download_dir + "/"
else:
content=apk_name + ' ' + time_str
url = "https://oapi.dingtalk.com/robot/send?access_token=" + access_token data = {
"msgtype": "text",
"text": {
"content": content
},
"at": {
#"atMobiles": [
# mobile
#],
"isAtAll": "false"
}
}
json_data= json.dumps(data).encode(encoding='utf-8')
print(json_data)
header_encoding = {"Content-Type": "application/json"}
req = request.Request(url=url, data=json_data, headers=header_encoding)
res = request.urlopen(req)
res = res.read()
print(res.decode(encoding='utf-8')) if __name__ == "__main__":
time_str = strTime
if len(argv) == 3:
apk_name=argv[1]
download_dir=argv[2]
send_msg(time_str,apk_name,download_dir)
else:
apk_name = argv[1]
send_msg(time_str,apk_name)

nginx作为下载服务器配置:

[root@localhost ~]# cat /usr/local/nginx/conf/nginx.conf
user nobody;
worker_processes 1;
error_log logs/error.log warn;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
sendfile on;
keepalive_timeout 65;
gzip on;
server_tokens off;
server {
listen 80;
server_name localhost;
location / {
root html;
rewrite ^/(.*) http://ip?/download redirect;
}
location ~* ^/download {
root html;
autoindex on;
autoindex_localtime on;
autoindex_exact_size off;
}
}
}

  

JENKINS安卓打包CI的更多相关文章

  1. jenkins 安卓打包生成二维码下载

    先来张图看看吧 构思 jenkins gradle 打包apk文件,python myqr 模块生成二维码 放入nginx 访问图片的路径,apk安装包放在 nginx 下载目录. 环境 centos ...

  2. 安卓打包apk

    打apk包的环境依赖 1.jdk 2.sdk 3.ndk 打apk包的工具 gradle mkdir /usr/local/Android cd /usr/local/Android mkdir sd ...

  3. gitlab+jenkins自动化打包APK

    前置条件: 环境搭建,jenkins需要的插件看这里: gitlab+jenkins自动化打包IOS 配置思路: step1: 搭建sdk,gradle运行环境,参照: CentOS7下安装安装and ...

  4. 庐山真面目之十一微服务架构手把手教你搭建基于Jenkins的企业级CI/CD环境

    庐山真面目之十一微服务架构手把手教你搭建基于Jenkins的企业级CI/CD环境 一.介绍 说起微服务架构来,有一个环节是少不了的,那就是CI/CD持续集成的环境.当然,搭建CI/CD环境的工具很多, ...

  5. CentOS安装gitlab,gerrit,jenkins并配置ci流程

    CentOS安装gitlab,gerrit,jenkins并配置ci流程 By Wenbin juandx@163.com 2016/4/9 这是我参考了网上很多的文档,配置了这三个软件在一个机器上, ...

  6. Jenkins 集成打包和上传 App Store 的冲突

    周一下午用 Jenkins 集成打包,遇到了一个很奇怪的问题,之前上传到 APP Store 的时候 Build Settings->“Code Signing Resource Rules P ...

  7. Unity3D安卓打包参数配置与兼容性的关系分析

    前言 在使用Unity3D工程导出安卓安装包的时候,往往会遇到兼容性的问题,针对某些机型,要么无法打开游戏,要么会出现卡机的现象.面对这种情况,我们可以调节相关的参数来提高兼容性. 为了了解在打包时候 ...

  8. Jenkins+Maven+Git CI环境搭建手册

    Jenkins+Maven+Git CI环境搭建手册 环境: OS:Linux version 2.6.32-220.23.2.ali878.el6.x86_64 (ads@kbuild) (gcc ...

  9. Unity3D安卓打包

    Unity3D安卓打包须知: 最近在接触Unity3D,在打包安卓时,出现了一些问题,在这里写出来跟大家分享: 首先需要安装jdk和android-sdk,安装方法略 Jdk的目录结构如下: andr ...

随机推荐

  1. shell 备份mysql

    shell脚本备份mysql,放在crontab中,可以作为每日测试用数据库备份 #!/bin/bash string_time=`date +%Y%m%d%H%M`; file_path=`date ...

  2. kotlin基础 字符串比较 equal

    strring.equal(str,boolean) boolean=False,默认值,区分大小写 boolean=True,不区分大小写

  3. Spring Cloud(一)简单的微服务集成Eureka

    1        Spring Cloud简介 1.1             简介 Spring Cloud项目的官方网址:https://projects.spring.io/spring-clo ...

  4. 转 zabbix 自动发现和 zabbix自定义用户key与参数User parameters

    ########31 https://www.cnblogs.com/yjt1993/p/10883345.html 1.概念 在配置Iterms的过程中,有时候需要对类似的Iterms进行添加,这些 ...

  5. iOS - 获取当前时间日期星期几

    //获取当前时间日期星期 - (NSString *)getCurrentTimeAndWeekDay { NSArray * arrWeek=[NSArray arrayWithObjects:@& ...

  6. LwIP应用开发笔记之五:LwIP无操作系统TCP服务器

    前面我们实现了UDP服务器及客户端以及基于其上的TFTP应用服务器.接下来我们将实现同样广泛应用的TCP协议各类应用. 1.TCP简述 TCP(Transmission Control Protoco ...

  7. Centos7中rc.local设置springboot项目开机自启动

    在Centos7下,rc.local文件,开机默认是不执行的 1.进入rc.local中 路径如下图

  8. SpringBoot小技巧:Jar包换War包

    SpringBoot小技巧:Jar包换War包 情景 我们都知道springBoot中已经内置了tomcat,是不需要我们额外的配置tomcat服务器的,但是有时这也可能是我们的一个瓶颈,因为如果我们 ...

  9. k8s-job使用

    一.job特性 运行完成后退出,但是不会被删除,便于用户查看日志信息,了解任务完成的情况 删除job时产生的pod也会被一起删除 job中可以运行多个pod(任务执行多次),且可以并行运行缩短任务完成 ...

  10. Git - ignore过滤文件

    Git - ignore 官网:https://git-scm.com/docs/gitignore 今天在初始化仓库的时候,考虑到如何过滤不需要的文件进入版本控制系统.所以去查阅了一番官方文档. 想 ...