通过宝塔的webhook插件,实现把码云上的项目自动同步到web服务器

通过宝塔的webhook插件,实现把码云上的项目自动同步到web服务器指定路径下

  1. 确保web服务器里安装了git 可通过git –version查看
  2. 进入宝塔面板,软件管理-》宝塔插件,搜索wekhook,然后安装即可

  1. 添加hook

脚本内容:

脚本代码:

#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#判断宝塔WebHook参数是否存在
if [ ! -n "$1" ];
then
          echo "param参数错误"
          echo "End"
          exit
fi
#git项目路径
gitPath="/www/wwwroot/zixue"
#git 网址
gitHttp="git@gitee.com:xxxx.git"
 	
echo "Web站点路径:$gitPath"
 
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
        cd $gitPath
        #判断是否存在git目录
        if [ ! -d ".git" ]; then
                echo "在该目录下克隆 git"
                git clone $gitHttp gittemp
                mv gittemp/.git .
				rm -rf gittemp
        fi
        #拉取最新的项目文件
        git reset --hard origin/master
        git pull
        #设置目录权限
        chown -R www:www $gitPath
        echo "End"
        exit
else
        echo "该项目路径不存在"
        echo "End"
        exit
fi

注意:添加完后,点击编辑查看脚本内容是否正确,在上图输入框输入的命令会被过滤,所以要重新添加shell命令进去

  1. 查看秘钥

接下来就是在码云等其他平台里做配置了,这里以码云为例

  1. 打开码云仓库,添加WebHooks

  1. 设置私有仓库代码同步

首先登录服务器 输入命令cd ~/.ssh && ls查看有没有SSH key

如果没有,使用命令ssh-keygen -t rsa -C "your_email@example.com"生成。如下图所示:

复制好id_rsa.pub文件内容后,打开码云的私有项目,依次点击:管理->添加公钥,如图:

在码云上添加好公钥后,使用ssh -T git@gitee.com测试SSH连接:

 

更改宝塔hook脚本中的仓库地址为码云私有项目仓库的SSH连接地址

至此完毕,如果不成功,可以尝试更新一下webhook

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
可以使用Node.js的Express框架来搭建Web服务器,并使用Webhook实现自动化部署。具体步骤如下: 1. 使用Express框架,创建一个Web服务器: ```javascript const express = require('express'); const app = express(); app.listen(3000, () => { console.log('Server started on port 3000'); }); ``` 2. 创建一个路由,用于接收Webhook请求: ```javascript app.post('/webhook', (req, res) => { console.log('Webhook received'); // 执行自动化部署的代码 res.send('Webhook received'); }); ``` 3. 在GitHub或其他代码托管平台上,配置Webhook,将请求发送到服务器的`/webhook`路由。 4. 在Webhook请求中,包含有关代码更新的信息。您可以使用shell脚本来执行自动化部署的任务。例如: ```javascript app.post('/webhook', (req, res) => { console.log('Webhook received'); const { spawn } = require('child_process'); const deploy = spawn('sh', ['./deploy.sh']); deploy.stdout.on('data', data => { console.log(data.toString()); }); deploy.on('close', code => { console.log(`Child process exited with code ${code}`); }); res.send('Webhook received'); }); ``` 5. 在部署脚本`deploy.sh`中,可以执行您需要的部署任务。例如,您可以使用`git pull`命令来获取最新的代码更新: ```bash #!/bin/bash cd /path/to/project git pull origin master npm install pm2 restart app ``` 6. 使用PM2或其他进程管理工具,启动您的Node.js应用程序。例如: ```bash pm2 start app.js ``` 这样,您就可以使用Webhook自动触发部署任务,并自动化部署您的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值