예제 #1
0
파일: tasks.py 프로젝트: zdimon/django-ci
def clear_work_dir(ename):
    print('Stoping supervisor')
    run_command('sudo service supervisor stop')
    print('Removing work dir')
    env_path = os.path.join(settings.WORK_DIR, ename)
    bashCommand = "sudo rm -r %s" % env_path
    try:
        run_command(bashCommand)
    except:
        pass
    # remove nginx conf
    nginx_path = os.path.join(settings.BASE_DIR, 'env-conf', 'nginx', ename)
    try:
        os.remove(nginx_path)
    except:
        pass

    # remove supervisor conf
    filename = '%s-django.conf' % ename
    supervisor_conf_path = os.path.join(settings.BASE_DIR, 'env-conf',
                                        'supervisor', filename)
    try:
        os.remove(supervisor_conf_path)
    except:
        pass

    filename = '%s-frontend.conf' % ename
    supervisor_conf_path = os.path.join(settings.BASE_DIR, 'env-conf',
                                        'supervisor', filename)
    try:
        os.remove(supervisor_conf_path)
    except:
        pass
    restart()
예제 #2
0
파일: utils.py 프로젝트: zdimon/django-ci
def clone_origin(poj_id):
    from project.models import Project
    prj = Project.objects.get(pk=poj_id)
    print('Cloning origin from %s' % prj.git)
    path = os.path.join(settings.ORIGIN_DIR, prj.name)
    try:
        os.mkdir(path)
    except:
        pass
    os.chdir(path)
    run_command("git clone %s %s" % (prj.git, prj.name))
예제 #3
0
파일: utils.py 프로젝트: zdimon/django-ci
def git_clone(env_id):
    from .models import Environ
    env = Environ.objects.get(pk=env_id)
    prj = env.project
    path_to = os.path.join(settings.WORK_DIR, env.name)
    path_from = os.path.join(settings.ORIGIN_DIR, prj.name)
    bashCommand = "cp -r %s/. %s" % (path_from, path_to)
    print('Pulling origin')
    os.chdir(path_from)
    run_command('git pull origin release')
    # g = git.cmd.Git(path_from)
    # g.pull()
    print('Coping project')
    run_command(bashCommand)
    git_create_branch(env_id)
예제 #4
0
def clone_origin(poj_id):
    import time
    time.sleep(1)
    from project.models import Project
    prj = Project.objects.get(pk=poj_id)
    print('Cloning origin from %s' % prj.git)
    path = os.path.join(settings.ORIGIN_DIR, prj.name)
    os.mkdir(path)
    os.chdir(path)
    command = f'git clone {prj.git} .'
    run_command(command)
    print('Cheking', os.path.join(path, 'install'))
    if os.path.isfile(os.path.join(path, 'install')):
        os.chdir(path)
        run_command('bash install')
예제 #5
0
파일: tasks.py 프로젝트: zdimon/django-ci
def git_pull(env_id):
    env = Environ.objects.get(pk=env_id)
    path = os.path.join(settings.WORK_DIR, env.name)
    os.chdir(path)
    out = run_command('git pull origin master')
    #out = run_command('git push')
    return out
예제 #6
0
파일: tasks.py 프로젝트: zdimon/pressa-besa
def git_diff(env_id):
    env = Env.objects.get(pk=env_id)
    path = os.path.join(settings.WORK_DIR, normalize_email(
        env.email), 'pressa-besa')
    os.chdir(path)
    out = run_command('git diff')
    return out
예제 #7
0
파일: tasks.py 프로젝트: zdimon/django-ci
def git_push(env_id):
    env = Environ.objects.get(pk=env_id)
    path = os.path.join(settings.WORK_DIR, env.name)
    os.chdir(path)
    bname = 'devel-%s' % env.name
    command = 'git push --set-upstream origin %s' % bname
    # command = 'git push'
    out = run_command(command)
    return out
예제 #8
0
파일: tasks.py 프로젝트: zdimon/pressa-besa
def git_push(env_id):
    env = Env.objects.get(pk=env_id)
    path = os.path.join(settings.WORK_DIR, normalize_email(
        env.email), 'pressa-besa')
    os.chdir(path)
    bname = 'devel-%s' % normalize_email(env.email)
    command = 'git push --set-upstream origin %s' % bname
    # command = 'git push'
    out = run_command(command)
    return out
예제 #9
0
파일: tasks.py 프로젝트: zdimon/django-ci
def git_commit(env_id):
    env = Environ.objects.get(pk=env_id)
    path = os.path.join(settings.WORK_DIR, env.name)
    os.chdir(path)
    run_command('git add .')
    comment = 'commit from %s project %s' % (env.user.username,
                                             env.project.name)
    run_command_arr(['git', 'commit', '-m', '"%s"' % comment])
    d = run_command('git push')
    print(d)
    # repo = Repo(path)
    # t = repo.head.commit.tree
    #if repo.git.diff(t):
    # print('Make commit')
    # repo.git.add(update=True)
    # comment = 'commit from %s project %s' % (env.user.username, env.project.name)
    # r = repo.index.commit(comment)
    env.state = 'edited'
    env.save()
    # save_commit(comment, env)
    # os.chdir(path)
    # out = run_command('git push')
    return {"error": None, "output": f'Данные закомичены. {d["output"]} '}
예제 #10
0
파일: utils.py 프로젝트: zdimon/django-ci
def git_create_branch(env_id):
    from .models import Environ
    env = Environ.objects.get(pk=env_id)
    path = os.path.join(settings.WORK_DIR, env.name)
    os.chdir(path)
    bname = 'devel-%s' % env.name
    run_command("git branch %s" % bname)
    run_command("git checkout %s" % bname)
    run_command("git push --set-upstream origin %s" % bname)
예제 #11
0
파일: tasks.py 프로젝트: zdimon/django-ci
def merge_release(env_id):
    from .models import Environ
    env = Environ.objects.get(pk=env_id)
    path = os.path.join(settings.WORK_DIR, env.name)
    os.chdir(path)
    bname = 'devel-%s' % env.name
    command = 'git push --set-upstream origin %s' % bname
    run_command(command)
    path = os.path.join(settings.ORIGIN_DIR, env.project.name)
    os.chdir(path)
    command = 'git pull'
    run_command(command)
    command = 'git merge origin/devel-%s' % env.name
    run_command(command)
예제 #12
0
파일: views.py 프로젝트: zdimon/django-ci
def clear_log(request, id):
    env = Environ.objects.get(pk=id)
    lname = f'{env.name}.django.{settings.DOMAIN}'
    logname = f'{env.name}.django.{settings.DOMAIN}-err.log'
    path = os.path.join(settings.BASE_DIR, 'logs', lname)
    logpath = os.path.join(settings.BASE_DIR, 'logs', logname)
    command = "sudo supervisorctl -c /etc/supervisor/supervisord.conf stop %s" % lname
    run_command(command)

    command = "rm -f %s" % logpath
    print(command)
    run_command(command)
    command = "sudo supervisorctl -c /etc/supervisor/supervisord.conf start %s" % lname
    run_command(command)
    rez = {"output": 'Ok'}
    return JsonResponse(rez)
예제 #13
0
파일: tasks.py 프로젝트: zdimon/django-ci
def build_front(ep_id):
    from .models import EnvironProcess
    ep = EnvironProcess.objects.get(pk=ep_id)
    path = os.path.join(settings.WORK_DIR, ep.env.name, ep.path)
    os.chdir(path)
    run_command(ep.command)
예제 #14
0
파일: tasks.py 프로젝트: zdimon/django-ci
def reread():
    print('Rereading supervisor')
    run_command("sudo service supervisorctl reread")
    print('Restarting nginx')
    run_command("sudo service nginx restart")
예제 #15
0
def clear_origin(poj_id):
    from project.models import Project
    prj = Project.objects.get(pk=poj_id)
    env_path = os.path.join(settings.ORIGIN_DIR, prj.name)
    bashCommand = "sudo rm -r %s" % env_path
    run_command(bashCommand)
예제 #16
0
파일: tasks.py 프로젝트: zdimon/django-ci
def git_diff(env_id):
    env = Environ.objects.get(pk=env_id)
    path = os.path.join(settings.WORK_DIR, env.name)
    os.chdir(path)
    out = run_command('git diff')
    return out
예제 #17
0
파일: tasks.py 프로젝트: zdimon/django-ci
def restart():
    print('Restarting supervisor')
    run_command("sudo service supervisor restart")
    print('Restarting nginx')
    run_command("sudo service nginx restart")