forked from xiaozhi/xiaozhi-esp32
52 lines
1.4 KiB
Python
52 lines
1.4 KiB
Python
#! /usr/bin/env python3
|
|
from dotenv import load_dotenv
|
|
load_dotenv()
|
|
|
|
import os
|
|
import oss2
|
|
import json
|
|
|
|
def get_version():
|
|
with open('CMakeLists.txt', 'r') as f:
|
|
for line in f:
|
|
if line.startswith('set(PROJECT_VER'):
|
|
return line.split('"')[1]
|
|
return '0.0.0'
|
|
|
|
def upload_bin_to_oss(bin_path, oss_key):
|
|
auth = oss2.Auth(os.environ['OSS_ACCESS_KEY_ID'], os.environ['OSS_ACCESS_KEY_SECRET'])
|
|
bucket = oss2.Bucket(auth, os.environ['OSS_ENDPOINT'], os.environ['OSS_BUCKET_NAME'])
|
|
bucket.put_object(oss_key, open(bin_path, 'rb'))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
# 获取版本号
|
|
version = get_version()
|
|
print(f'version: {version}')
|
|
|
|
# 上传 bin 文件到 OSS
|
|
upload_bin_to_oss('build/xiaozhi.bin', f'firmwares/xiaozhi-{version}.bin')
|
|
|
|
# File URL
|
|
file_url = os.path.join(os.environ['OSS_BUCKET_URL'], f'firmwares/xiaozhi-{version}.bin')
|
|
print(f'Uploaded bin to OSS: {file_url}')
|
|
|
|
firmware_json = {
|
|
"version": version,
|
|
"url": file_url
|
|
}
|
|
with open(f"build/firmware.json", "w") as f:
|
|
json.dump(firmware_json, f, indent=4)
|
|
|
|
# copy firmware.json to server
|
|
firmware_config_path = os.environ['FIRMWARE_CONFIG_PATH']
|
|
ret = os.system(f'scp build/firmware.json {firmware_config_path}')
|
|
if ret != 0:
|
|
print(f'Failed to copy firmware.json to server')
|
|
exit(1)
|
|
print(f'Copied firmware.json to server: {firmware_config_path}')
|
|
|
|
|
|
|
|
|