使用 webhooks 实现自动部署

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用 webhooks 实现自动部署相关的知识,希望对你有一定的参考价值。

工作中常使用 webhooks 来实现自动部署,总写都放在 oneNote 上面了,体会不到分享的乐趣,现在拿出来进行分享,希望大家在工作中能够游刃有余

ubuntu 安装 git 客户端

sudo apt install git
查看版本
git --version

从线上克隆代码

git clone  git 地址

准备钩子文件

* 创建并修改目录
    mkdir -p /Data/wwwroot/hooks
    chown -R root:root  /Data/wwwroot/hooks
* 写入文件:每个项目两个文件 -- 入口文件+.sh文件
    sudo -Hu apache touch /Data/wwwroot/hooks/funds-v1-update.php
    sudo -Hu apache touch /Data/wwwroot/hooks/funds-v1.sh
    chmod 700 funds-v1-update.php
    chmod 700 funds-v1.sh
    funds-v1-update.php 文件代码:
        <?php
                passthru(‘bin/sh /Data/wwwroot/hooks/funds-v1.sh‘);
funds-v1.sh 文件代码:
         #!/bin/bash
        WEB_PATH=‘/Data/wwwroot/crm.funds.com/‘
        WEB_USER=‘root‘
        WEB_USERGROUP=‘root‘

        echo "start master"
         cd $WEB_PATH

        #whoami
     echo "pulling source code ..."

     /usr/bin/git reset --head origin/master
     /usr/bin/git clean -f
     /usr/bin/git pull
     /usr/bin/git checkout master

     echo "changing permissions..."
     chown -R $WEB_USER:$WEB_USERGROUP $WEB_PATH

     echo "finished"

部署公钥配置

sudo -Hu apache ssh-keygen -t rsa       # 请选择 “no passphrase”,一直回车下去
复制/root/.ssh/id_rsa.pub的内容并添加到部署公钥:
        选择项目 > 设置 > 部署公钥 > 新建 > 粘贴到下面框并确认

添加 webhooks

选择 项目 > 设置 > Webhook >新建hook > 复制hooks/funds-v1-update.php 所在的网址 :http://hooks.koo49.com/funds-v1-update.php 
        令牌可选,建议写上
        稍过几秒,刷新页面查看hook状态,显示为绿色勾就 OK 了

配置钩子和项目服务器nginx

    ? 配置 nginx
        ○ nginx 钩子配置
        ○ nginx 项目配置
        详见:Nginx 配置虚拟主机三种方法
    ? 配置远程连接
        ○ sudo -u root git clone [email protected]:yourUrl/crm.funds.com.git
        ○ 首次必须要克隆一次,而且要给apache分配/Data/wwwroot的读写权限

以上是关于使用 webhooks 实现自动部署的主要内容,如果未能解决你的问题,请参考以下文章

编程技巧│Gitee 的 WebHooks 实现代码自动化部署

使用 webhooks 实现自动部署

github webhook 实现代码自动部署 踩坑!!

webhook 自动部署代码

使用码云,GitHub进行版本控制,并通过WebHook进行自动部署

关于git webhook