2 Star 11 Fork 12

geshuyong / GiteeWebHook

Create your Gitee Account
Explore and code with more than 12 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Please pay attention to the specific project description and its upstream code dependency when using it.
Clone or Download
contribute
Sync branch
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README

Auto Deployment

项目介绍

一个基于node.js开发的用于迅速搭建并使用 WebHook 进行自动化部署和运维系统,支持:Gitee。 现在绝大多数git仓库管理平台都支持设置一个回调URL,包括github、Gitee、Coding等。当开发者在本地push代码到远程时,就会向该URL发起请求,接收该请求的服务器可以在本地运行一个配置好的命令。

软件架构

node.js + gitee-webhook-handler + loger4js + pm2 推荐使用pm2进程管理器,能够监听代码改动,并自动重启。

安装教程

  1. 克隆源码

     git clone git@gitee.com:geshuyong/GiteeWebHook.git
     #或
     git clone https://gitee.com/geshuyong/GiteeWebHook.git
  2. 安装服务

     npm install
  3. 修改配置文件config.js

     {
         os: "linux",        //系统类型:windows\linux
         path: "",           //WebHook POST路径,根据实际设定
         secret: "",         //请求密码,根据实际设定
         port: 1314          //WEB Hook服务端口号
     }
  4. 配置命令脚本,将脚本添加至cmd目录,脚本名称为:仓库名称.sh。WEB_PATH的值需根据实际项目位置设定。

     #!/bin/sh
    
     WEB_PATH='/root/service'
     WEB_USER='root'
     WEB_USERGROUP='root'
     
     echo "Start deployment"
     cd $WEB_PATH
     echo "pulling source code..."
     git reset --hard origin/master
     git clean -f
     git pull
     git checkout master
     echo "changing permissions..."
     chown -R $WEB_USER:$WEB_USERGROUP $WEB_PATH
     echo "Finished."
  5. 启动

     #如果未安装进程管理pm2及pm2-intercom,则进行安装
     npm install -g pm2
     pm2 install pm2-intercom
     #如果已经安装pm2及pm2-intercom,直接运行下面的命令
     pm2 start pm2.json
     pm2 monit # 可以通过此命令查看服务的状态
  6. 在gitee的WebHooks中设定对应信息

    设定要请求的服务器命令调用地址, 如: http://xxxxx.com:1314/url 设定密钥key, 如: admin

    设定好后进行测试,成功返回:{"ok":true}

  7. 如果防火墙未开放,需配置。

     firewall-cmd --zone=public --add-port=1314/tcp --permanent
     firewall-cmd --reload
     firewall-cmd --zone=public --query-port=1314/tcp

Empty file

About

一个基于node.js开发的用于迅速搭建并使用 WebHook 进行自动化部署和运维系统,仅支持:Gitee。 expand collapse
NodeJS
Cancel

Releases

No release

Contributors

All

Activities

Load More
can not load any more
NodeJS
1
https://gitee.com/geshuyong/GiteeWebHook.git
git@gitee.com:geshuyong/GiteeWebHook.git
geshuyong
GiteeWebHook
GiteeWebHook
master

Search

53164aa7 5694891 3bd8fe86 5694891