前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >代码持续自动发布 原

代码持续自动发布 原

作者头像
阿dai学长
发布2019-05-10 11:01:55
5600
发布2019-05-10 11:01:55
举报
文章被收录于专栏:阿dai_linux阿dai_linux

需求:

  • 自动更新私人gitbook项目代码
  • 如果代码没更新,不做务必要的构建操作

思路

  1. 定时任务加shell脚本,无论更新没更新都执行git pull
    • 优点:能满足需求
    • 资源浪费,代码仓库不更新也执行pull操作,傻傻的
  2. 通过github的webhook来监控仓库中master分支push操作,只要有push就执行pull操作
    • 优点:
      • 避免了方法1中更多无必要的操作
      • 更新节奏准确及时
    • 缺点:对初学者有一定的挑战

方法1:cron+script

代码语言:javascript
复制
#!/bin/bash
# Auto deploy 
dirs="/home/nginx/workspace/gitbook/books/*_docs"
home_dir="/home/nginx/workspace/gitbook"

for pro_dir in $dirs;do
    time=`date +'%Y-%m-%d %H:%M:%S'`
    cd $pro_dir && git pull > /dev/null

    t1=`stat -c %Y $pro_dir/SUMMARY.md`
    t2=`date +%s`

    if [ $[ $t2 - $t1 ] -lt 180 ];then
        gitbook build > /dev/null
        if [ $? -eq 0 ];then
            echo "$time Update Succeed!" >> $home_dir/scripts/update.log
        else
            echo "$time Update Failed!" >> $home_dir/scripts/update.log
        fi
    else
	    echo "$time Nothing Changed!" >> $home_dir/scripts/update.log
	fi	
done

方法2:调用github的webhook

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求:
  • 思路
    • 方法1:cron+script
      • 方法2:调用github的webhook
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档