zoukankan      html  css  js  c++  java
  • 瞎折腾之Webhooks

      之前听学长介绍过webhooks,也知道有这个东西,但没有真正的用于项目部署,长久以来一直过着“刀耕火种”的生活......长久以来,都是这么更新代码的:

        

      由于之前做的项目刚刚上线,需要对其进行持续的维护,而项目所在的服务器只能通过内网登录,出了校门就不行了,就想起了webhook,决定要搞一下方便后期部署。

      刚开始找到了Bitbucket的官方文档中的webhooks部分,头都要大了,但是勉强能看懂些。

      后来参照其它人的部署代码,琢磨出了自己的一套部署。

      大致流程是这样的:webhooks可以通过监听push触发回调,发送post请求到所指定的地址,服务端收到该请求进行对应的git pull更新代码的操作。

       

       新建webhook:找到项目的weebhooks。Add new webhook创建一个webhook。Title用以区分不同的webhook, URL是你所指定的POST请求的接口地址(如果还没有定义好,可以临时填一个网址如http://baidu.com也可以,后期接口完成后再改),其它默认。点击save时,webhook会发送一个测试请求,用于测试url的有效性。测试通过后就成功的创建了一个webhook。

      

       构建对POST请求处理接口:以nodejs为例。在服务器上创建webhook的POST请求对应的处理接口。收到请求后就代表开发者向github或bitbucket中push了新的代码,我们只需要进入项目根目录,执行git pull origin master(按实际情况填写,不一定是origin master)拉取代码更新就ok了。

    首先,在express中建立一个路由地址,通过引入一个插件shelljs执行进入目录,执行更新的shell操作就可以了。对于同步操作,它会返回一个对象,通过判断对象的code是否等于0来判断执行状态。当然了,express是我偷懒的写法,也可以直接用node的http模块来处理post请求。

       部署:部署的时候,需要让该服务常驻后台,在这里,推荐forever或者pm2进行部署,易上手。

       测试:代码部署完毕后,将webhook的url和服务器的url进行比对看是否一致,如果一致了,就可以通过push更新代码,之后在gitlab/github/bitbucket的webhooks查看对应请求的状态。

                                  (url为测试地址,请填写自己服务器接口的真实地址)

    点击View requests查看对应的请求状态。如果返回200OK,代表代码已经成功更新。

      总结:有了webhook,以后我们部署更新代码的时候,就只用git push就好了,不用再登录服务器进行一步步的更新,真是方便多了,也适用于项目部署自动化的一部分吧。

      第一次写博文,大家有什么意见尽管发表,别喷的太厉害就行。欢迎大神指导。

     

  • 相关阅读:
    Winform程序及dll打包成一个可执行的exe
    DotfuscatorPro防止反编译&ILSpy反编译
    C# 7-zip 压缩和解压缩
    ASP.NET MVC使用JWT代替session,实现单点登陆
    C#动态实体集的反序列化(动态JSON反序列化)
    FTP服务安装及使用
    未能加载文件或程序集“Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件。
    项目在服务上运行出现中文水印乱码问题解决(第二篇)
    图片加水印信息处理及中文乱码解决
    MongoDB 索引
  • 原文地址:https://www.cnblogs.com/maxy612/p/6875624.html
Copyright © 2011-2022 走看看