diff --git a/.drone.yml b/.drone.yml index a71f36a..a11bba4 100644 --- a/.drone.yml +++ b/.drone.yml @@ -99,17 +99,18 @@ steps: # # 自动授权 # - export projectCode="projectCode=project-inluar4ppcxvciefgb_ila" - export isiot="True" # 要不要传iot - - export name="windows打包_测试版" # 应用名称(自行填写 必填) - - export version=$(cat .tags) # 应用版本 + - export name=${DRONE_REPO_NAMESPACE}-${DRONE_REPO_NAME} # 应用名称(自行填写 必填) + - export version=exe_$(cat .tags) # 应用版本 - export sourceId="8" # 应用来源id(默认为8 即测试环境专用) //如需更改查看测试环境平台级下应用管理新增应用的/api/platform/v1/platformProgram/platformProgramAdd接口 - export genre="localpack" # 应用类型 本地资源包 [outchain, localpack] - export resolution="2160*3840竖屏" # 分辨率(自行填写)[1080*1920竖屏, 1920*1080横屏, 3840*2160横屏, 2160*3840竖屏] - export package="/drone/src/Sources/Setup.exe" # 包名称 - export des=$CI_COMMIT_MESSAGE # 应用描述 - - python3 iot_upload.py + - python3 iot_upload.py WindowsAPP - export package="/drone/src/IOTContainer/$DRONE_REPO_NAME.$(cat .tags).zip" # 包名称 - - python3 iot_upload.py + - export version=zip_$(cat .tags) # 应用版本 + - python3 iot_upload.py WindowsAPP when: branch: diff --git a/iot_upload.py b/iot_upload.py index ef7ed51..9050c04 100644 --- a/iot_upload.py +++ b/iot_upload.py @@ -1,7 +1,7 @@ import json import os import requests - +import sys def file_write(file_name,text_content): # charset() @@ -12,7 +12,10 @@ def file_write(file_name,text_content): def dingtalk(cdn_url,packageUrl): tpl_for_dingtalk=f''' -下载地址: "{cdn_url}{packageUrl}" + + 下载地址: ({cdn_url}{packageUrl}) + + ![image]([TPL_STATUS_PIC]) @@ -67,9 +70,92 @@ def platformAppAdd(): dingtalk(cdn_url,packageUrl) +# 应用管理-授权(获取code list) +def getPlatformProgramList(): + bodyjson = { + 'name': os.getenv('name'), + 'version': os.getenv('version'), + 'genre': os.getenv('genre'), + } + print (bodyjson) + url_platformAppAdd = os.getenv('url_for_iotplatform') + "/api/platform/v1/platformProgram/getPlatformProgramList/1/10" + headers = {'content-type': 'application/json;charset=UTF-8'} + r = requests.post(url_platformAppAdd, headers=headers, data=json.dumps(bodyjson)) + print (type(json.loads(r.text))) + print (json.loads(r.text)['data']["listObject"][0]['code']) + + return json.loads(r.text)['data']["listObject"][0]['code'] + + +# 应用管理-授权 +def multipleProgramToOneProject(): + codeList = getPlatformProgramList() + bodyjson = { + "projectCode": os.getenv('projectCode'), + "codeList": [codeList] + } + print (bodyjson) + url_platformAppAdd = os.getenv('url_for_iotplatform') + "/api/platform/v1/platformProgram/multipleProgramToOneProject" + headers = {'content-type': 'application/json;charset=UTF-8'} + r = requests.post(url_platformAppAdd, headers=headers, data=json.dumps(bodyjson)) + print (r.text) + + +# 应用管理-新增应用 +def platformProgramAdd(): + # 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'), + 'sourceId': os.getenv('sourceId'), + "resolution": os.getenv('resolution'), + '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/platformProgram/platformProgramAdd" + 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) + + # 自动授权 + # multipleProgramToOneProject() + + +def get_the_last_windowsApp(name): + bodyjson = { + 'name': os.getenv('name'), + } + print (bodyjson) + url_platformAppAdd = os.getenv('url_for_iotplatform') + "/api/platform/v1/platformApp/getPlatformAppList/1/10" + headers = {'content-type': 'application/json;charset=UTF-8'} + r = requests.post(url_platformAppAdd, headers=headers, data=json.dumps(bodyjson)) + print (r.text) + packageName=r.text['data']['packageName'] + packageUrl=r.text['data']['packageUrl'] + version=r.text['data']['version'] + print(packageName) + print(packageUrl) + print(version) + return + + if os.getenv("isiot") != 'False': - platformAppAdd() + if sys.argv[1] == "WindowsAPP": + platformAppAdd() + elif sys.argv[1] == "distZIP": + platformProgramAdd() + else: print ("is not iot") if os.getenv("DRONE_BRANCH") == 'master':