Example #1
0
 def get_release_notes_path(self, updated_package_url, username, password, local_path):
     '''
                 获取版本说明路径,包括几个步骤:
     1、下载版本说明到本地路径
     2、返回本地路径
     '''
     if updated_package_url == None:
         print("请填写版本说明父目录url")
         return(None)
     if os.path.exists(local_path):
         pywincmds.del_dir(local_path)
     #print("svn co --depth files", updated_package_url, revision, local_path, sourcecode["username"], sourcecode["password"])
     pysvn.co(updated_package_url, local_path, username, password, depth="files")
     files = os.listdir(local_path)
     release_notes_path = ""
     for file in files:
         if file.find("版本说明") > -1:
             new_file = (local_path + os.sep + file).replace('版本说明', 'release_notes', 1)
             os.rename(local_path + os.sep + file, new_file)
             release_notes_path = new_file
     if not release_notes_path:
         print("版本说明路径不对,请重新输入")
         exit(1)
     else:
         return(release_notes_path)
Example #2
0
 def co_path(self, urls, dirs, username, password, revision="HEAD"):
     if isinstance(urls, list):
         length = len(urls)
         for j in range(0, length):
             if os.path.exists(dirs[j]):
                 pysvn.up(dirs[j], username, password, revision)
             else:
                 pysvn.co(urls[j], dirs[j], username, password, revision)
     elif isinstance(urls, str):
         if os.path.exists(dirs):
                 pysvn.up(dirs, username, password, revision)
         else:
             pysvn.co(urls, dirs, username, password, revision)
Example #3
0
def update_3(flag):
    '''
    py_file需要全局变量, pyfile不能在co_path内
    co_path为更新包路径检出位置
    py_file为更新文件列表存放文件
    '''
    global svn_revision
    pysvn.up("HEAD", site_path, username_online, password_online)
    if os.path.exists(co_path):
        pywincmds.del_dir(co_path)
    pysvn.co(svn_url, svn_revision, co_path, username, password)
    list_tree = pysvn.list_agile('svn list -R', svn_url, username, password)
    for i in range(0,len(list_tree)):
        list_tree[i] = list_tree[i].lower().strip().rstrip("/")
    list_tree_actual = []              
    pywincmds.py_write_svn_message_to_file(svn_url, url_file)
    pywincmds.py_robocopy(co_path, site_path, '.svn _svn', '')
    os.chdir(site_path)
    st = pysvn.st("") #更新文件列表
    #使用svn list url和svn st产生列表的分隔符不一致,下面的方法只适用于windows
    for item in st:
        try:
            if list_tree.index(item.strip().split()[-1].strip().replace("\\", "/").lower()) > -1:
                list_tree_actual.append(item.strip().split()[-1].strip().replace("\\", "/"))
        except:
            pass
    if len(list_tree_actual) == 0:
        print("无更新内容!")
        exit(1)
    list_str = '\n'.join(list_tree_actual).strip()
    pywincmds.py_write_svn_message_to_file(list_str, changelist)
    if flag:
        pywincmds.restart_app_pool(workspace + os.sep + "sbp", apppool)
    if pywincmds.web_check(sit_url, site_keyword, inteveral_time, web_decode):
        #三段启动成功
        svn_revision = pysvn.py_get_svn_info_revision(pysvn.info(co_path, username, password))
        content = "更新包url:" + svn_url + "\n" + "更新包版本:" + svn_revision + "\n\n"
        content = content + "三段差异内容:" + "\n"
        content = content + '\n'.join(st).strip()
        content = content + "\n" + "详情见:" + "\n" + log_url
        title = site_name + "三段更新成功,请测试,谢谢!"
        #邮件
        pyemail.send(to_list, title, content, [])
Example #4
0
style_offline_username = "******"
style_offline_password = "******"

style_online_woringcopy = [r"C:\project\IMAGES001.5173cdn.com", r"C:\project\IMAGES002.5173cdn.com", 
                            r"C:\project\IMAGES002.5173cdn.com", r"C:\project\IMAGES.5173cdn.com", 
                            r"C:\project\IMAGES001.5173cdn.com\tags"]
style_online_wks = [r"C:\project\IMAGES001.5173cdn.com", r"C:\project\IMAGES002.5173cdn.com", r"C:\project\IMAGES.5173cdn.com"]

style_online_username = os.getenv("style_online_username", "zhangyfsh")
style_online_password = os.getenv("style_online_password", "9MHF774Q0WDAFH2")


if os.path.exists(change_workingcopy):
    pysvn.up(change_revision, change_workingcopy, change_username, change_password)
else:
    pysvn.co(change_url, change_revision, change_workingcopy, change_username, change_password)

urls = []
offline_paths = []
online_paths = []
content = pysvn.log_path(change_workingcopy + os.sep + "change.txt", change_username, change_password)

def url_transfer_path():
    f = open(change_workingcopy + os.sep + "change.txt")
    temp_urls = f.readlines()
    f.close()
    for temp in temp_urls:
        if temp.strip() == "":
            continue
        else:
            urls.append(temp.strip())