|
#!/usr/bin/env python # -*-coding=utf-8-*-
# __author__ = 'ccorz'
import argparse, os, shutil
class Deploye:
def __init__(self):
parse = argparse.ArgumentParser()
parse.add_argument('-job_name', type=str, required=True)
parse.add_argument('-build_id', type=str)
parse.add_argument('-repo_path', type=str)
parse.add_argument('-jenkins_home', type=str)
self.args = parse.parse_args()
self.job_repo = '%s/%s' % (self.args.repo_path, self.args.job_name)
self.job_git = '%s/workspace/%s/' % (self.args.jenkins_home, self.args.job_name)
self.job_code = '%s/code' % self.job_repo
self.job_rollback = '%s/rollback' % self.job_repo
def path_handler(self):
"""判断代码库目录是否存在,不存在则创建"""
# print(self.args.repo_path)
if not os.path.exists(self.args.repo_path):
os.mkdir(self.args.repo_path)
if not os.path.exists(self.job_repo):
os.makedirs(self.job_rollback,exist_ok=True)
else:
shutil.rmtree(self.job_code)
def copy_code(self):
shutil.copytree(self.job_git, self.job_code,symlinks=False,ignore=shutil.ignore_patterns('.git'))
os.system('find %s -ctime +2 -exec rm -rf {} \;' % self.job_rollback)
shutil.copytree(self.job_git, "%s/%s"%(self.job_rollback,self.args.build_id),
symlinks=False,ignore=shutil.ignore_patterns('.git'))
if __name__ == '__main__':
obj = Deploye()
obj.path_handler()
obj.copy_code() |
|
|