Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
I
install.api
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Script
install.api
Commits
89fda4f2
Commit
89fda4f2
authored
Oct 28, 2020
by
jinkaiqiang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
每次克隆项目都会删除原来的目录,防止部分机子运行失败
parent
aef753e0
Pipeline
#28941
passed with stage
in 27 seconds
Changes
1
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
28 additions
and
6 deletions
+28
-6
flask_app.py
flask_app.py
+28
-6
No files found.
flask_app.py
View file @
89fda4f2
import
os
import
shutil
import
stat
import
git
from
flask
import
Flask
...
...
@@ -13,14 +15,34 @@ deploy_repo_path = 'ssh://git@47.110.145.204:2222/hs/deploy.git'
git_path
=
os
.
path
.
join
(
temp_file_dir
,
'deploy'
)
# 初始化git仓库
if
not
os
.
path
.
exists
(
os
.
path
.
join
(
git_path
,
'.git'
)):
# docker环境线下老是出现问题,先用代码拉取
os
.
system
(
f
'git clone {deploy_repo_path} {git_path}'
)
# repo = git.Repo.clone_from(url=deploy_repo_path, to_path=git_path)
# 初始化git仓库
# if not os.path.exists(os.path.join(git_path, '.git')):
# # docker环境线下老是出现问题,先用代码拉取
# os.system(f'git clone {deploy_repo_path} {git_path}')
# # repo = git.Repo.clone_from(url=deploy_repo_path, to_path=git_path)
#
# repo = git.Repo(git_path)
# repo.git.pull()
# 初始化git仓库(部分机子无法使用上次缓存的项目,直接删除上传缓存,每次都重新下载)
def
readonly_handler
(
func
,
path
,
execinfo
):
'''
在path目录下的部分文件或目录是只读的,从而会导致该操作失败,
需要在操作出错的时候,将文件或文件夹的状态修改为支持写的模式。
这里需要使用shutil.rmtree的onerror这个参数,
这里需要实现文件权限修改的回调函数,通过onerror带入。
'''
os
.
chmod
(
path
,
stat
.
S_IWRITE
)
func
(
path
)
if
os
.
path
.
exists
(
git_path
):
shutil
.
rmtree
(
git_path
,
onerror
=
readonly_handler
)
# docker环境线下老是出现问题,先用代码拉取
os
.
system
(
f
'git clone {deploy_repo_path} {git_path}'
)
repo
=
git
.
Repo
(
git_path
)
repo
.
git
.
pull
()
class
FlashAppLoader
(
AppLoaderBase
):
...
...
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