资讯专栏INFORMATION COLUMN

gitlab + php自动部署

The question / 1614人阅读

摘要:起因某种原因不能使用于是用写了一个自动部署脚本项目介绍用写的部署脚本可配置源代码目录目标目录缓存目录用来部署后删除忽略目录文件他们在本地的变化不会被部署支持可配置版本库和分支支持一个同时往多个目录部署支持手动在命令行触发支持网页界面操作

Summer-PHP-Deploy 起因

某种原因, 不能使用Jenkins, 于是用PHP写了一个自动部署脚本

项目介绍

用PHP写的部署脚本

可配置源代码目录, 目标目录, 缓存目录(用来部署后删除), 忽略目录/文件(他们在本地的变化不会被部署)

支持gitlab hook, 可配置版本库和分支

支持一个push event, 同时往多个目录部署

支持手动在命令行触发

支持网页界面操作

软件架构 准备

目录A, 用来存放git分支

目录B, 运行网站的代码目录

目录C, 部署用的脚本目录, C里边的脚本用来把A里边的代码更新同步到B里边

gitlab, 添加push hook, hook中指定的url可以执行C中的代码

文件说明:
文件名 作用
index_cli.php 入口1: 命令行部署
index_webhook.php 入口2: gitlab push hook触发的部署
index_webui.php 入口3: 图形化界面进行部署
Tool.php 工具类, 用来拉取最新代码, 找出差异, 同步代码到目标目录
msg.log 用来存放部署过程中的输出或错误信息
scripts/ 存放不同项目的部署脚本
目录C中的脚本使用举例:

如果存在 scripts/dev.php, 该脚本是为了把develop分支的代码部署到dev环境, 那么可以这样执行部署命令: php index_cli.php -p=dev

同样, 如果存在 scripts/pro.php, 该脚本是为了把master分支的代码部署到pro环境, 那么可以这样执行部署命令: php index_cli.php -p=pro

如果要部署指定某两次commit的变化 php index_cli.php -p=dev -v=1234567..7654321

命令参数说明:

命令 "index_cli.php -p=dev" 是指index_cli.php 调用scripts/dev.php 进行部署操作

scripts/dev.php里定义了部署用的路径配置信息, 自己写部署脚本时请参考dev.php中的写法

项目地址

码云 Summer-PHP-Deploy

待开发功能

部署前增量备份

增量回退

SQL部署

机器重启

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29515.html

相关文章

  • 一套基础自动部署搭建过程

    摘要:问题背景公司初创技术团队,没有任何基础设施的情况下,需要搭建一系列管理以及自动化部署等工具所以引发了下面一系列的部署过程,历时两天,中间也是碰到各种问题,但最终把基本工具全部搭建成功,耶,下面带大家一起看下此次搭建过程。 问题背景 公司初创技术团队,没有任何基础设施的情况下,需要搭建一系列code管理以及自动化部署等工具....所以引发了下面一系列的部署过程,历时两天,中间也是碰到各种...

    mzlogin 评论0 收藏0
  • GitLab [Webhooks] 实现自动化服务器部署

    摘要:简介我们在部署我们的应用时我们一般会寻求一些云平台服务器部署当然也可以直接在服务器里拉取远程仓库的代码当然我们也可以实现通过钩子来实现服务器与远程仓库代码的同步这样一来我们在本地提交功能分支到仓库中仓库也会同步到服务器这样我们就无需自己手动 简介 我们在部署我们的web应用时 我们一般会寻求一些云平台服务器部署 当然也可以直接在服务器里拉取远程仓库的代码 当然我们也可以实现通过Webh...

    roadtogeek 评论0 收藏0
  • 如何使用GitLab和Rancher构建CI/CD流水线 – Part 2

    摘要:第一部分的内容介绍了如何部署配置和确保在的运行。这一部分中,我们将介绍如何使用构建容器,以及如何使用容器配置项目。除此之外,我们还将涉及如何用建立容器并部署到上。 这是我们使用GitLab和Rancher构建CI/CD流水线系列教程的第二部分。第一部分的内容介绍了如何部署、配置和确保GitLab在Rancher的运行。这一部分中,我们将介绍如何使用GitLab CI Multi-Run...

    maybe_009 评论0 收藏0
  • Cube完结篇:实践指南之CD持续部署

    摘要:本期内容是结合在的持续部署流程,实现从代码至到部署应用至中全自动的持续部署。编写自己的命令如果有困难,可以加群申请源代码示例也可以等近期即将发布的,这样更香。千呼万唤始出来,Cube完结篇来了!今天的内容,是持续部署至Cube掌握前3期教程内容搭配第四期使用,你就是全场最靓的仔!朋友们,来咯!上一期我们用云游戏的演示网站介绍了Java应用如何做成镜像部署至Cube。本期内容是结合Cube A...

    Tecode 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<