使用webhooks进行代码的自动化部署
2020-04-02 16:04:15来源:博客园 阅读 ()
使用webhooks进行代码的自动化部署
AutoMaticDeployment---自动部署
项目简介
使用Github的webhooks进行代码的自动化部署
本项目是个人最近搞的一个小工具,自己最近在用hexo部署个人博客(地址:http://www.gongsir.club/blog)
部署完成之后,ui感觉还不错,于是自己就写了几篇文章发布上去,但是就遇到一个问题:
我每次写完博客,然后hexo g -d
之后,代码会自动提交到github上面(https://github.com/gongsir0630/blog.git)
这时,通过 https://gongsir0630.github.io/blog 自然可以访问到,但是因为速度慢,我将网站部署在自己
的服务器上,使用nginx部署静态项目,这就意味着我每次需要去服务器重新从github拉取最新代码,以此更
新网站。那这样太繁琐了,我不想每次都去手动更新代码,于是借助github(gitee也提供了)的webhooks,
搭建了一个自动部署:
webhooks可以在每次收到push之后向一个指定的url发送一个post请求,此项目正是基于此产生的,通过post
请求触发服务器执行一个脚本(或者执行linux命令),自动从github拉取代码,并更新nginx,这样就可以实
现网站自动更新。
技术栈
- Java编程
- SpringBoot
使用说明
项目地址:https://gitee.com/gongsir0630/AutomaticDeployment
1、克隆代码到本地或者服务器,修改端口号,编译打包:
编辑src/main/resources下的application.properties文件,修改端口号,然后使用maven命令编译打包
1mvn clean install -Dmaven.test.skip=true
2、后台运行项目:
1nohup java -jar AutomaticDeployment.jar > AutomaticDeployment.out 2>&1 &
3、访问http://{your_website}:{port}/hello
,显示“hello”表示部署成功
4、配置webhooks(以github为例):
在项目的settings页面,点击左侧webhook选项,点击new新建webhooks,填写url,并在url拼接需要执行
的shell脚本的位置:
配置url:http://{your_website}:{port}/linux/exec?cmd={cmd}&secret={secret}
参数说明:
其中cmd表示需要执行的shell脚本的位置:/root/xxx/update.sh:
1echo "========== 开始执行home.sh脚本 =========="
2echo "进入blog所在目录"
3cd /usr/local/nginx/html/blog
4## 拉取最新代码
5echo "从github拉取最新代码"
6git pull
7## 重启nginx
8echo "重启nginx"
9../../sbin/nginx -s reload
10## 打印提示语句
11echo "========== 网站更新完成 =========="
secret表示自定义密码,这里需要和代码一致(默认:gongsir0630),以此验证用户身份,
如需修改,请编辑src/main/java/club.gongsir.linux.controller.DemoController
中exec方法的secret字符串:
5、保存webhooks配置即可,这样当仓库的代码更新之后,就会自动发post请求以触发shell脚本的执行。
6、执行成功返回:
后期更新
使用github的secret签名完成用户身份验证
联系我
个人主页(含联系方式):http://www.gongsir.club
原文链接:https://www.cnblogs.com/gongsir/p/12620609.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:Spring整合Junit
- 聊聊 OAuth 2.0 的 token expire_in 使用 2020-06-08
- 为什么阿里巴巴Java开发手册中强制要求接口返回值不允许使用 2020-06-06
- 学习笔记之方法引用 2020-06-06
- idea使用小技巧(一) 2020-06-05
- 用斗地主的实例学会使用java Collections工具类 2020-06-05
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash