使用coding + webhook实现自动部署

coding 是什么?

  类似github,应该说是封装github功能的代码管理平台,国内私有库。

webhook是什么?

  webhook是一种api概念,指的是请求来源不是前端,而是推送。使得请求更具有实时性,不需要一直轮询。

 

我们使用的是coding提供的webhook服务,它监听我们对代码库做的一些操作,事件触发,然后发送指定请求,服务器接收请求然后做出对应操作。

 

1、coding 新增webhook,监听push请求

 

 

 

 

 coding上新增webhook完成之后,会发送一条测试请求,且如果有触发条件,也会发送请求。

 

 如果没有设置好接受请求的项目,一般请求是不通的。

 

 

 

2、编写接收请求服务器

  webhook上的url调的就是我们这个服务器上的api。 这个服务器很简单。网上代码有很多版本,php版、node.js版、pyhon版。内容都是接收请求,然后执行shell命令。其实实现该功能即可,与语言无关。因为我上述的而语言都不会。

  java编写:

    简单构建一个web项目,接收请求,根据请求url执行对应的shell代码。shell代码一般内置在linux服务器的指定位置。

    代码片段: 

                             

                   

 

 

****.sh里面写的什么呢?

  简单的构建命令:

    

 

  注意:在服务器上,要对指定用户赋予该可执行文件的执行权力。

    如:chmod 777 rebuild.sh; 

3、为接受服务所在用户授权,使其能够拉取代码,执行可执行文件

    设置coding免密拉取代码

      免密拉取代码也就是使用ssh公私钥的形式进行交互。

      拿到服务器用户的公钥:一般为用户目录下的.ssh/id_rsa.pub

        如果没有,则执行命令生成:        

                                     

 

       将用户公钥添加为项目的部署公钥:

        

 

    添加完之后,试试在服务器能不能免密拉取代码。如果不能,仍要用户名密码,检查你的代码是否是以ssh方式进行git数据传输的。

    

 

 

基本就是这个样子了。

  编写好接受服务器之后,注意测试外网是否可以访问,需要nginx设置还是开放端口。修改对应好webhook中的url。注意shell文件是否运行报错,是否有权限运行等等。

 

 

 

 

   

      

 

posted @ 2020-07-16 18:23  guodaxia  阅读(2267)  评论(0编辑  收藏  举报