专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

码云+宝塔WebHook实现自动化部署 宝塔源码建站

ins518 2024-10-08 08:29:12 技术文章 11 ℃ 0 评论

博主本人搭建企业网站遇坑记录,挑重点讲哈!

前期准备:

代码托管平台:码云(gitee);

服务器:阿里云轻量应用服务器,1核2G、5M带宽(峰值)、1000G流量(只要96元[微笑],莫名其妙地就给阿里云打了一波广告),服务器安装git。

git安装并生成部署公钥

安装git:

yum install git

git config --global user.name "Your Name"

git config --global user.email "email@example.com"

git config --list // 查看配置是否生效

生成公钥并查看:

ssh-keygen -t rsa

cd ~/.ssh

ls

cat id_rsa.pub

将生成的公钥添加到gitee部署公钥。

服务器运维面板:宝塔Linux面板(简单好用);

安装WebHook并添加Hook

宝塔面板软件商店搜索“宝塔WebHook”一键安装,Hook名称要求和gitee代码仓库名称保持一致,避免后续出现意料之外的错误。

执行脚本

#!/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/$1"
#git 网址 自己仓库的链接
gitHttp="https://gitee.com/xxx/$1.git"
echo "Web站点路径:$gitPath"
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
        cd $gitPath
        #判断是否存在git目录
        if [ ! -d ".git" ]; then
                echo "在该目录下克隆 git"
                sudo git clone $gitHttp gittemp
                sudo mv gittemp/.git .
                sudo rm -rf gittemp
        fi
        echo "拉取最新的项目文件"
        #sudo git reset --hard origin/master
        sudo git pull        
        echo "设置目录权限"
        sudo chown -R www:www $gitPath
        echo "End"
        exit
else
        echo "该项目路径不存在"
                echo "新建项目目录"
        mkdir $gitPath
        cd $gitPath
        #判断是否存在git目录
        if [ ! -d ".git" ]; then
                echo "在该目录下克隆 git"
                sudo git clone $gitHttp gittemp
                sudo mv gittemp/.git .
                sudo rm -rf gittemp
        fi
        echo "拉取最新的项目文件"
        #sudo git reset --hard origin/master
        sudo git pull
        echo "设置目录权限"
        sudo chown -R www:www $gitPath
        echo "End"
        exit
fi

提交后即可查看密匙,然后将密匙填写到gitee的webhook配置中。

最后,在/www/wwwroot目录下新建文件夹,此处文件夹名称必须与gitee代码仓库名称保持一致。

查看结果

开发人员通过git提交代码,查看WebHook日志。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表