Commit e86f1215 authored by 赵凯's avatar 赵凯 💬

stash pre部署

parent 26ff9e9e
#!/usr/bin/env python3 #!/usr/bin/env python3
import sys
import requests,json import requests,json
from common.token import getToken from common.token import getToken
# 拉取环境最新任务
def tasksEnv(pname_id, env):
# env 转 env_code
env_code = 0
if env in ['test']:
env_code = 0
elif env in ['beta']:
env_code = 1
elif env in ['beta', 'pre']:
env_code = 7
url = f'https://gw.qimai.shop/api/jenkins/jenkinsjob/tasks/?page=1&page_size=18&pname_id={pname_id}&env={env_code}'
cookie = getToken()
payload={}
headers = {
'cookie': cookie,
'Host': 'gw.qimai.shop',
'pragma': 'no-cache',
'cache-control': 'no-cache',
'sec-ch-ua': '"Not A(Brand";v="99", "Google Chrome";v="121", "Chromium";v="121"',
'accept': 'application/json, text/plain, */*',
'x-xsrftoken': 'undefined',
'sec-ch-ua-mobile': '?0',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36',
'sec-ch-ua-platform': '"macOS"',
'origin': 'https://opms.qimai.shop',
'sec-fetch-site': 'same-site',
'sec-fetch-mode': 'cors',
'sec-fetch-dest': 'empty',
'referer': 'https://opms.qimai.shop/',
'accept-language': 'zh-CN,zh;q=0.9'
}
response = requests.request("GET", url, headers=headers, data=payload)
rst = json.loads(response.text)
rst_results = rst['results']
rst_results_one = rst_results[0]
print()
print("=========================================")
print("拉取当前最新的一次部署任务:")
print(f"-环境:{rst_results_one['env']}")
print(f"-上线说明:{rst_results_one['info']}")
print(f"-提交者:{rst_results_one['applicant']}")
print(f"-创建时间:{rst_results_one['apply_time']}")
print(f"-上线commit号:{rst_results_one['commitid']}")
print(f"-分支&Tag:{rst_results_one['ref']}")
print("=========================================")
print()
return rst_results_one
# 执行部署任务 # 执行部署任务
def tasksPatch(taskid): def tasksPatch(taskid):
cookie = getToken() cookie = getToken()
......
...@@ -6,7 +6,7 @@ from apis.login_api import login ...@@ -6,7 +6,7 @@ from apis.login_api import login
from apis.get_prejects_api import getProjects from apis.get_prejects_api import getProjects
from apis.get_gits_api import getGits from apis.get_gits_api import getGits
from apis.tasks_api import tasks from apis.tasks_api import tasks
from apis.task_patch_api import tasksPatch,taskMultiZone from apis.task_patch_api import tasksPatch,taskMultiZone,tasksEnv
from apis.task_status_api import taskstatus from apis.task_status_api import taskstatus
def match(path, target): def match(path, target):
...@@ -43,6 +43,7 @@ def checkProjIdGetResult(job): ...@@ -43,6 +43,7 @@ def checkProjIdGetResult(job):
def checkCommitid(projectid, env): def checkCommitid(projectid, env):
rst_data = getGits(projectid, env) rst_data = getGits(projectid, env)
for data in rst_data: for data in rst_data:
# test;beta 环境最新节点拉取
if data['name'] == env: if data['name'] == env:
name = data['name'] name = data['name']
committer_name = data['committer_name'] committer_name = data['committer_name']
...@@ -50,7 +51,7 @@ def checkCommitid(projectid, env): ...@@ -50,7 +51,7 @@ def checkCommitid(projectid, env):
commitid = data['commitid'] commitid = data['commitid']
msg = data['msg'] msg = data['msg']
print(f'{name}分支, 拉取最新节点为: {commitid}; 提交人: {committer_name}; 提交时间: {committed_date}; 提交信息: {msg}') print(f'{name}分支, 拉取最新节点为: {commitid}; 提交人: {committer_name}; 提交时间: {committed_date}; 提交信息: {msg}')
return commitid return data
e_msg = f'无法拉取{env}分支最新节点' e_msg = f'无法拉取{env}分支最新节点'
raise Exception(e_msg) raise Exception(e_msg)
...@@ -63,7 +64,7 @@ if len(argv) == 1: ...@@ -63,7 +64,7 @@ if len(argv) == 1:
else: else:
env = argv[1] env = argv[1]
if env not in ["test","beta"]: if env not in ["test","beta","pre","pre-run"]:
sys.exit("env环境参数设置错误") sys.exit("env环境参数设置错误")
if len(argv) == 2: if len(argv) == 2:
...@@ -87,13 +88,22 @@ if len(argv) == 4: ...@@ -87,13 +88,22 @@ if len(argv) == 4:
projectResult = checkProjIdGetResult(job) projectResult = checkProjIdGetResult(job)
# 项目ID # 项目ID
projectid = projectResult['id'] projectid = projectResult['id']
# 拉取项目最新任务
rst_results_one = tasksEnv(projectid, env)
# opms-pre命令,只会拉取最新环境节点,不会部署
# opms-pre-run命令,才会继续部署
if env in ['pre']:
print(f"请向 {rst_results_one['ref']} 合并你的开发分支,然后再执行 opms-pre-run 命令来部署预发环境")
sys.exit()
# 项目环境部署信息 # 项目环境部署信息
projectEnvRef = next((env_ref for env_ref in projectResult['env_ref'] if env_ref['env'] == env), None) projectEnvRef = next((env_ref for env_ref in projectResult['env_ref'] if env_ref['env'] == env), None)
# print(projectResult) # print(projectResult)
# print(projectEnvRef) # print(projectEnvRef)
# 拉取提交节点 # 拉取提交节点
commitid = checkCommitid(projectid, env) commitidData = checkCommitid(projectid, env)
commitid = commitidData['commitid']
# 创建部署任务 # 创建部署任务
taskid = tasks(projectid, env, commitid, info) taskid = tasks(projectid, env, commitid, info)
time.sleep(3) time.sleep(3)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment