• 服务器(三):利用github的webhooks实现自动部署


    实现自动部署的关键就是利用github的webhooks,我们在github建立一个项目之后,在项目主页点击Settings,看到Webhooks点击打开可以添加一个链接,这里的意思是,github可以帮你监听一些项目发生的事件,当指定事件发生时,会向你指定的链接发一个post请求,然后你就可以知道自己的哪个项目发生了什么事情,再去做一些具体的操作,那么这时就可以利用shell脚本实现项目自动pull并且重新部署,最后实现的效果就是在本地push代码,一段时间过后,效果就展示在了网站上面。
    自动部署的工具有很多,但是现在咱们不使用工具,自己造一个简单的轮子,这个轮子只实现一个webhooks接口,配合shell脚本,然后将另一个项目重新启动。
    首先是webhooks要点,使用express-generate生成一个项目结构,在里面添加一个post接口,这个接口只需要做一件事情,调用事先写好的shell脚本,shell脚本里面要做两件事情,一个是将当前正在运行的项目kill掉,然后拉新代码将项目重新启动,node执行shell命令的模块是
    child_process。
    下面看一下shell脚本里面需要的简要几步:
    #!/bin/sh
    
    export APP_PATH=/usr/share/nginx/test
    cd $APP_PATH && git checkout master
    cd $APP_PATH && git pull origin master
    cd $APP_PATH && npm i
    
    data=`ps -ef | grep "node test" | awk '{print $2}'`
    
    for i in $data;
    do
    kill $i;
    done
    
    cd $APP_PATH && node test.js > log &
    首先是拉取新代码,接着是咱们需要重新部署的项目的进程号,然后kill掉,接着启动即可。
    如果项目需要在域名中被访问,那么就需要配置nginx代理 和子域名解析。
  • 相关阅读:
    CRC在线计算器
    freemodbus-v1.5.0 源码分析
    图及其实现
    最短路径
    交换排序-------快速排序
    FreeRTOS--删除任务
    Install OE and BitBake
    高端编程之DOM
    timeout使用实例
    使用JS提交表单
  • 原文地址:https://www.cnblogs.com/jyuf/p/8971422.html
Copyright © 2020-2023  润新知