热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用coding+webhook实现自动部署

coding是什么?类似github,应该说是封装github功能的代码管理平台,国内私有库。webhook是什么?webhook是一种api概念,指的是请求来源不是前端,而是推送

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文件是否运行报错,是否有权限运行等等。

 

 

 

 

   

      

 


推荐阅读
author-avatar
CPA娇_588
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有