【完整教程windows10版本】jenkins最后的交付 jenkins发布蒲公英到然后消息发到钉钉上面(七)

随着一步一步的集成。发现只剩下最后一步了

交付

废话不说了

教程开始   在android的下面新建main.py代码如下。有些需要打马赛克。所以就马赛克一下哈

 

import sys
import os
# 正则获取 apk路径 并且上传到蒲公英
import json
import subprocess

import re

import requests


def main():
    # 参数1  build 类型 一共两个值 Release   Debug
    # 参数2  buildEnv
    # dev
    # baidu
    # sanliuling
    # yyb
    # xiaomi
    # huawei
    #
    # meizu
    # 发布到线上记得改成False
    #参数3 web 分支
    #参数4 android 分支
    #参数5 默认url  file:///android_asset/www/index.html|||||http://192.168.*.*:8080/index.html
    #参数6 默认host
    # webBranch=sys.argv[3].replace("/","_")
    # androidBranch=sys.argv[4].replace("/","_")
    # codeUrl=sys.argv[5].replace("\“","")
    # host=sys.argv[6].replace("\“","")
    debug = False
    if debug:
        # 自己创建的钉钉群组的url
        url = "https://oapi.dingtalk.com/robot/send?access_token=***"
    else:
        # 线上的url
        url = "https://oapi.dingtalk.com/robot/send?access_token=***"

    buildType = sys.argv[1]
    try:
        buildEnv = sys.argv[2]
    except:
        print("参数2 没有传 直接发版不需要生成apk到蒲公英")
        return "";


    # \app\build\outputs\apk\dev\release
    path = os.getcwd() + "/app/build/outputs/apk"
    if buildEnv == "":
        print("数2 没有传  直接发版不需要生成apk到蒲公英")
        return "";
    else:
        path += "/" + buildEnv
    if buildType == "Release":
        path += "/release"
    elif buildType == "Debug":
        path += "/debug"
    pass
    path = getApkPath(path)
    path = path.replace("\\", "/");
    print("找到路径:"+path)
    cmd = 'curl -F "file=@' + path + '" -F "uKey=*****" -F "_api_key=******b" https://qiniu-storage.pgyer.com/apiv1/app/upload'
    (status, uploadRes) = subprocess.getstatusoutput(cmd)
    print("============命令行运行结果" + "\n")
    print(str(uploadRes) + "\n")
    uploadRes="{"+re.findall("k{(.*?)\"}}",uploadRes)[0]+"\"}}"
    print("============截取后返回结果" + "\n")
    print(str(uploadRes)+"\n")

    uploadRes = json.loads(str(uploadRes))
    if uploadRes['code'] != 0:
        print("上传失败 错误码" + uploadRes['code'])
        return
    qrAdress=uploadRes['data']['appQRCodeURL']
    versionCode=uploadRes['data']['appVersionNo']
    versionName=uploadRes['data']['appVersion']
    pgyVersion=uploadRes['data']['appBuildVersion']
    appName=uploadRes['data']['appName']
    print(qrAdress)
    # isWEbCode="不是"
    # if codeUrl=="file:///android_asset/www/index.html":
    #     isWEbCode="是"
    # else:
    #     isWEbCode="不是。用的环境为"+codeUrl
    # isHost="测试"
    # if host == "https://gateway.gaoxiaobang.com":
    #     isHost="线上或灰度环境(灰度请自己配置dns)";
    # else:
    #     isHost="测试环境:"+host
    #格式化整体内容
    res="";
    res+="--------------------------\n"
    res+="android 端代码打包成功\n"
    res+="应用名称:%s\n"%appName
    res+="版本号:%s\n"%versionCode
    res+="版本名称:%s\n"%versionName
    res+="蒲公英版本号:%s\n"%pgyVersion
    # res+="web 端分支为"+webBranch+"\n"
    # res+="android 端分支为"+androidBranch+"\n"
    # res+="web端使用的是分支代码么?"+isWEbCode+"\n"
    # res+="android 环境为"+isHost+"\n"
    res+="android 蒲公英下载二维码:"+qrAdress+"\n"

    res+="--------------------------\n"
    sendText(res,url)
def getApkPath(dirname):
    result = []  # 所有的文件
    for maindir, subdir, file_name_list in os.walk(dirname):

        for filename in file_name_list:
            if (".apk" in filename):
                apath = os.path.join(maindir, filename)  # 合并成一个完整路径
                return apath

    return dirname+"apk路径未找到"

def sendText(res, url):
    if (res != ""):
        headers = {
            "Content-Type": "application/json"
        }
        data = {"msgtype": "text",
                "text": json.dumps({
                    "content": res
                })
                }

        # print(json.loads(data))
        res = requests.post(url, headers=headers, data=json.dumps(data))
        print("发送状态" + str(res.status_code))
if __name__ == '__main__':
    main()
   

这个python做了一些事情、

1 得到apk 路径上传到蒲公英

蒲公英上传的时候有一个file=@ 这个@不要少了哦

蒲公英地址

https://www.pgyer.com/manager/dashboard/app/*******

可以找到对应的参数

那么钉钉机器人又是个什么鬼???

加上后就会有上面的url 可以根据代码来发消息

jenkins 蒲公英 和钉钉都是免费的、、

下面看重头戏。jenkins配置

 

一些环境变量。。必不可少。

 

包含了py3 curl 和nodejs

构建步骤再加一步

 

cd 01_huikeyun_android
python main.py %DEBUG_RELEASE% %BUILD_ENV%

之后效果就是选好参数以后 

 

铛铛~

这样测试端、和web端同事就可以自己操作了 再也不用麻烦我们安卓端了、

我们只要做好git的版本就好了 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安果移不动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值