'''
这是一个自动部署zip包的脚本,遍历当前文件夹内所有zip文件,并部署到服务器
ip:服务器ip
Authorization:认证的token
'''
import requests
import os
import json
import time
ip = 'http://127.0.0.1:8000'
headers = {
'Authorization': "Token 123456789123456789",
'Proxy-Connection': 'keep-alive',
'Pragma': 'no-cache',
'Cache-Control': 'no-cache',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36',
'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundaryfBJ5iBaDVQzmRBvE',
'Accept': '*/*',
'Accept-Language': 'zh-CN,zh;q=0.9',
}
error_file = []
session = None
def get_session():
session = requests.session()
session.headers = headers
return session
def get_zip_list():
return_list = []
dir_path = os.path.dirname(__file__)
os.chdir(dir_path)
zip_list = os.listdir(dir_path)
for i in zip_list:
if os.path.splitext(i)[1] == '.zip':
return_list.append(i)
return return_list
def upload_file(file_name):
file = {'file': open(file_name, 'rb')}
url = ip + '/api/project/upload'
result = session.post(url, files=file)
if "True" in result.text:
return True
else:
return False
def buid_file(file_name):
url = ip + '/api/project/' + os.path.splitext(file_name)[0] + '/build'
data = {'description': file_name}
result = session.post(url, data=json.dumps(data))
return result.status_code
def deploy_file(deploy_file_name):
url = ip + '/api/client/1/project/' + deploy_file_name + '/deploy'
result = session.post(url)
return result.status_code
session = get_session()
zip_list = get_zip_list()
# 手动添加部署失败的项目
# zip_list = ['phys.org.science-news']
for file_name in zip_list:
upload_resutl = upload_file(file_name)
if upload_resutl:
# 上传成功进行, 编译
time.sleep(0.5)
status_code = buid_file(file_name)
if status_code == 200:
# 编译成功,进行部署
time.sleep(0.5)
deploy_status_code = deploy_file(os.path.splitext(file_name)[0])
if deploy_status_code == 200:
print(file_name, "部署成功")
else:
print('部署文件失败', file_name)
error_file.append(file_name)
else:
print('编译文件失败', file_name)
error_file.append(file_name)
else:
print('上传文件失败', file_name)
error_file.append(file_name)
print('部署失败的项目', error_file)
gerapy自动批量部署脚本
最新推荐文章于 2024-08-08 18:46:08 发布