利用宝塔WebHook+Git实现与Github/Gitlab/码云实现本地同步与快速部署

手搓教程1周前更新 DoTing
339 0 0

介绍

将代码存储在Github上在本地搭建网站实现实时同步。 使用宝塔WebHook自动拉取GIT仓库,支持推送时自动更新代码。 支持:

  • 码云
  • Github
  • Gitlab

宝塔WebHook

在宝塔面板>应用商店>搜索宝塔WebHook进行安装
利用宝塔WebHook+Git实现与Github/Gitlab/码云实现本地同步与快速部署插图AKE小栈 – 热爱分享 | www.ak0.cn

点击设置添加Hook

利用宝塔WebHook+Git实现与Github/Gitlab/码云实现本地同步与快速部署插图1AKE小栈 – 热爱分享 | www.ak0.cn

命名Hook名称,根据需求填入密码/密钥版WebHook代码

利用宝塔WebHook+Git实现与Github/Gitlab/码云实现本地同步与快速部署插图2AKE小栈 – 热爱分享 | www.ak0.cn

配置Github

利用宝塔WebHook+Git实现与Github/Gitlab/码云实现本地同步与快速部署插图3AKE小栈 – 热爱分享 | www.ak0.cn利用宝塔WebHook+Git实现与Github/Gitlab/码云实现本地同步与快速部署插图4AKE小栈 – 热爱分享 | www.ak0.cn

使用ssh连接

创建SSL密钥

在命令终端输出:ssh-keygen -t ras ,一路回车 利用宝塔WebHook+Git实现与Github/Gitlab/码云实现本地同步与快速部署插图5AKE小栈 – 热爱分享 | www.ak0.cn

利用宝塔WebHook+Git实现与Github/Gitlab/码云实现本地同步与快速部署插图6AKE小栈 – 热爱分享 | www.ak0.cn

添加SSH密钥

利用宝塔WebHook+Git实现与Github/Gitlab/码云实现本地同步与快速部署插图7AKE小栈 – 热爱分享 | www.ak0.cn

代码

密码版密钥版

“`shell
#!/bin/bash

echo —————-
# 输出当前时间
date +%Y-%m-%d %H:%M:%S
echo 开始执行

# Git分支名称
branch=main
# Git项目路径
gitPath=/www/wwwroot/******
# Git仓库地址
httpGit=https://username:passwd@gitlab.com/******/******.git

echo Web站点路径:$gitPath

if [ -d $gitPath/.git ]; then # 检查项目路径中是否存在 .git 目录

echo .git 目录已存在,执行 git pull 更新代码…

cd $gitPath || exit

sudo git fetch origin
sudo git reset –hard origin/$branch

echo 拉取最新更新到本地主干…
sudo git pull $httpGit $branch

echo '设置权限…'
sudo chown -R www:www .

else

echo .git 目录不存在,从远程仓库克隆代码…
mkdir -p $gitPath
cd $gitPath || exit
git clone $httpGit .
echo '设置权限…'
sudo chown -R www:www .
if [[ $? != 0 ]]; then
exit
fi

fi
“`

“`shell
#!/bin/bash

echo —————-
# 输出当前时间
date +%Y-%m-%d %H:%M:%S
echo 开始执行

# 设置 SSH 密钥文件路径
sshKeyPath=~/.ssh/****** # SSH 密钥文件路径

# 获取Git分支名称
branch=main
# 将Git项目存入宝塔路径
gitPath=/www/wwwroot/******
# Git仓库地址
httpGit=git@gitlab.com:******/******.git

# 使用 SSH 密钥进行身份验证
export GIT_SSH_COMMAND=ssh -i $sshKeyPath

echo Web站点路径:$gitPath

if [ -d $gitPath/.git ]; then # 检查项目路径中是否存在 .git 目录

echo .git 目录已存在,执行 git pull 更新代码…

cd $gitPath || exit

sudo git fetch origin
sudo git reset –hard origin/$branch

echo 拉取最新更新到本地主干…
sudo git pull

echo '设置权限…'
sudo chown -R www:www .

else

echo .git 目录不存在,从远程仓库克隆代码…
mkdir -p $gitPath
cd $gitPath || exit
git clone $httpGit .
echo '设置权限…'
sudo chown -R www:www .
if [[ $? != 0 ]]; then
exit
fi

fi
“`

原文地址:https://www.ak0.cn/4017

© 版权声明

相关文章

暂无评论

暂无评论...