fabric 自动创建仓库并下载或更新代码

Posted 明天OoO你好

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了fabric 自动创建仓库并下载或更新代码相关的知识,希望对你有一定的参考价值。

#!/usr/bin/python
# -*- coding: utf-8 -*
from fabric.api import *
from fabric.contrib.files import *

## 需要注意的是,这里的host strings必须由[email protected]:port三部分构成,缺一不可,否则运行时还是会要求输入密码
env.hosts = [
    [email protected],
]

env.passwords = {
    [email protected]:22: 111111,
}

env.sdir="/data/soft/soft/"
env.username = wangteng
env.email = [email protected]
env.gitlab_url = http://git.qqq.cn/qq_devops/zq.git


def test_exist_dir():
    # 检查仓库是否已经存在
    if int(run(" [ -e ‘%s‘ ] && echo 11 || echo 10" % env.sdir)) == 11:
        result = True
    else:
        result = False
    return result


@task
def git_config():
    # 配置git,这个配置只需一次就好
    try:
        run(git config --global user.name "%s"%env.username)
        run(git config --global user.email "%s"%env.email)
        run(git remote add origin %s%env.gitlab_url)
    except:
        pass


def make_dir():
    # 如果目录不存在,则创建目录,初始化为仓库,并将代码下载到仓库
    run(mkdir -p %s;git init%(env.sdir,))
    git_config()
    run(cd %s;git clone %s%(env.sdir,env.gitlab_url))


def get_file():
    # 如果仓库存在,进行代码更新
    dir_name = env.sdir+env.gitlab_url.split(/)[-1].split(.)[0]
    run(cd %s;git pull%dir_name)


@task
def start():
    flag = test_exist_dir()
    if flag:
        get_file()
    else:
        make_dir()


@task
def no_username_password():
    run(cd /;git config --global credential.helper store)

# fab -f test_fabric.py start --hide status,running,stdout,user,aborts,warnings,stderr 忽略所有输出

 

以上是关于fabric 自动创建仓库并下载或更新代码的主要内容,如果未能解决你的问题,请参考以下文章

Fabric.js 实现文本自动换行

如何将本地代码上传至git仓库

Cornerstone 相关

如何使用GIT_1.把GitHub仓库克隆到本地并更新代码到GitHub

Docker基础命令使用

Django 博客开发教程 15 - 使用 Fabric 自动化部署