zoukankan      html  css  js  c++  java
  • 服务器(三):利用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代理 和子域名解析。
  • 相关阅读:
    EFCore数据库迁移命令
    EF基本操作
    EF执行存储过程
    [vue]element-ui使用
    [vue]vue-router的使用
    [vue]使用webpack打包
    [vue]插槽与自定义事件
    [vue]计算属性
    [vue]axios异步通信
    [vue]组件
  • 原文地址:https://www.cnblogs.com/jyuf/p/8971422.html
Copyright © 2011-2022 走看看