import json import os import requests def file_write(file_name,text_content): # charset() file = open(file_name , "w") file.write(str(text_content)) file.close() def dingtalk(cdn_url,packageUrl): tpl_for_dingtalk=f''' 下载地址: "{cdn_url}{packageUrl}" ![image]([TPL_STATUS_PIC]) 项目名称:[PLUGIN_TPL_REPO_SHORT_NAME] 更新作者: [CI_COMMIT_AUTHOR_NAME] 更新内容:[TPL_COMMIT_MSG] [ [查看构建详情)]]([TPL_BUILD_LINK]) ''' print (tpl_for_dingtalk) file_write("./.tpl",tpl_for_dingtalk) def obsUpload(file,uploadType): url_obsUpload = os.getenv('url_for_iotfile') + "/api/file/v1/attachment/obsUpload" myfiles = {'file': open(file, 'rb')} mydata = {'uploadType': uploadType} r = requests.post(url_obsUpload, data=mydata, files=myfiles) print (r.text) json_str = r.text info = json.loads(json_str)['data'] return info # APP管理-新增APP def platformAppAdd(): # with open(".tags") as f: version = f.read().strip() logoFile = obsUpload(file=str(os.getenv('logo')), uploadType='logo') packageFile = obsUpload(file=str(os.getenv('package')),uploadType='compress') bodyjson = { 'name': os.getenv('name'), 'version': os.getenv('version'), 'genre': os.getenv('genre'), 'logoCode': logoFile['code'], 'logoUrl': logoFile['url'], 'packageCode': packageFile['code'], 'packageUrl': packageFile['url'], 'des': os.getenv('des') } print (bodyjson) url_platformAppAdd = os.getenv('url_for_iotplatform') + "/api/platform/v1/platformApp/platformAppAdd" headers = {'content-type': 'application/json;charset=UTF-8'} r = requests.post(url_platformAppAdd, headers=headers, data=json.dumps(bodyjson)) print (r.text) cdn_url = os.getenv('cdn_url') packageUrl = packageFile['url'] dingtalk(cdn_url,packageUrl) if os.getenv("isiot") != 'False': platformAppAdd() else: print ("is not iot") if os.getenv("DRONE_BRANCH") == 'master': cdn_url = 'https://qianmu-iot.1000my.com/' else: cdn_url = 'https://test-598d.1000my.com/' packageUrl = os.getenv('DRONE_REPO_NAMESPACE') + '-' + os.getenv('DRONE_REPO_NAME') + '-' + os.getenv('DRONE_BRANCH') + '/' + os.getenv('DRONE_REPO_NAME') + '.' + os.getenv('version')+ '.zip' dingtalk(cdn_url,packageUrl)