使用django实现一个代码发布系统
作者:huningfei 发布时间:2022-06-28 02:42:45
一 前期说明:
我运行项目的环境是nginx+php,存储代码用的是gitlab,
python版本:3.6 django版本:2.2.1 mysql版本:5.7
二 大体思路
1 需要知道主机的用户名,密码,端口号,
2 需要知道gitlab的用户名和密码
3 我准备把上面两条的信息,存储到当前登录用户的session中。
三实现功能
1 针对单个主机发布和回滚代码
2 可以批量发布和回滚代码
3角色分为管理员,开发,运维,测试,产品几个角色,每个角色返回不同的页面,利用rbac基于角色去实现不同的权限
4 管理员拥有所有权限,可以添加编辑,删除所有的东西
5 分页功能和快速搜索功能
6 当开发申请一个上线单,会邮件通知相关的运维和测试,以及项目负责人去审核。
四效果展示
针对不同的用户展示不同的页面
1 登陆页面展示
2 admin用户展示页面
3 运维展示页面
4 开发展示页面
5 测试展示页面
6 产品展示页面
发布代码
1 找到项目列表,添加你所需要的一个项目,包括仓库地址,选择这个项目要发布到那台主机上面
添加效果如下所示:
2 添加完成之后,点击上线按钮,如下所示,添加一个指定的分支,然后点击获取代码,
3 拉完代码之后,点击发布代码,在发布代码之前,我先去gitlab上面去编辑一个html文件
如下所示:里面还包含了一张北魏时期的地图,哈哈
然后我点发布,如下所示,选中你要发布的主机
发布成功效果,
去浏览器里面验证效果:
回滚代码
还是找的项目列表,点击回滚按钮,如下所示:
回滚效果
代码我放到了github上面 ,git clone -b deploy_7-4
第一次写还有很多不足,希望互相学习。
来源:https://blog.51cto.com/825536458/2416653


猜你喜欢
- python的数据类型有:数字(int)、浮点(float)、字符串(str),列表(list)、元组(tuple)、字典(dict)、集合
- 连接服务器菜单栏找到【工具/Tools】->【Deployment/部署】->【Confinguration…/配置…】。点加号
- 今天,启动MySQL服务器失败,如下所示:[root@spark01 ~]# /etc/init.d/mysqld startStartin
- 首先,adb实现对设备的reboot命令是:adb reboot . 但是如果是两台/多台设备的时候,需要声明serial number:
- 一,设计背景 由于所在公司ORACLE数据库较多,传统人工监控表空间的方式较耗时,且无法记录历史表空间数据,无法判断每日表空间增长
- 在类unix中,是\n (0x0A)。以为没有什么大的问题,没想到,这次开发一个小程序,却让我对这个问题大为头痛。 首先发现这个问题是这样的
- 废话不多说了,直接上代码吧!#!/usr/bin/env python# coding=utf-8# 画一棵樱花import turtlei
- Python 内置的四种常用数据结构:列表(list)、元组(tuple)、字典(dict)以及集合(set)。这四种数据结构一但都可用于保
- 代码如下var http=require('http');var ejs=require('ejs');va
- 一、激活函数1.Sigmoid函数函数图像以及表达式如下:通过该函数,可以将输入的负无穷到正无穷的输入压缩到0-1之间。在x=0的时候,输出
- 刚刚在学习些测试报告的时候,出现一个路径的问题,找了很久的原因,竟然是少了一个反斜杠引起的,在此顺便记录一下正反斜杠的作用。在Python中
- 网上搜到的代码,千篇一律是这个 Function Sort(ary) Dim KeepChecking,I,FirstV
- Numpy学习1 Numpy 介绍与应用1-1Numpy是什么NumPy 是一个运行速度非常快的数学库,一个开源的的python科学计算库,
- 今天遇到一个问题,在同事随意的提示下,用了 itertools.groupby 这个函数。不过这个东西最终还是没用上。问题就是对一个list
- 一、获得给定月份的周日数根据给定的某个日期,计算这个月份的周日的天数。根据系统变量@@DATEFIRST的值,判断周日的序号为【DatePa
- 探究多个装饰器执行顺序装饰器是Python用于封装函数或代码的工具,网上可以搜到很多文章可以学习,我在这里要讨论的是多个装饰器执行顺序的一个
- 试一试这个办法:struserlist = struserlist & "<
- 整理了一些JS的常用方法,包括验证啊,全选反选啊,ajax请求啊之类的,因为就是自己用的,写的都比较简单,就算抛砖引玉吧,喜欢的就拿去,不喜
- 方法一使用以下流式代码,无论下载文件的大小如何,Python 内存占用都不会增加:def download_file(url):  
- 实现效果:通过url所绑定的关键名创建目录名,每次访问一个网页url后把文件下载下来代码:其中 data[i][0]、data[i][1]