Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
opms-command
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
赵凯
opms-command
Commits
e86f1215
Commit
e86f1215
authored
Mar 26, 2024
by
赵凯
💬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
stash pre部署
parent
26ff9e9e
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
66 additions
and
4 deletions
+66
-4
task_patch_api.py
apis/task_patch_api.py
+52
-0
opms.py
opms.py
+14
-4
No files found.
apis/task_patch_api.py
View file @
e86f1215
#!/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
()
...
...
opms.py
View file @
e86f1215
...
@@ -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
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment