对于经常变动的网站来说, 手动部署是一件非常痛苦的事情

1. login remote host
2. cd ...
3. git pull
4. npm install
5. npm run XXX
...复制代码

如果是国内主机, 很容易就卡到 npm install 这个步骤, 如果是纯静态的网站, 可以把 npm install 等其他构建步骤放在本地来做, 然后把静态文件放在服务器上再做对应处理.
之前的 Github 开源项目 经常会用 Travis CI 做持续集成, 然而对私有仓库是收费的, 接下来尝试了 Gitlab CI , Jenkins 等方式,
Gitlab CI 在本机上跑, 始终提示 command not found, Google 了一圈不见答案, 放在私有服务器上, swap 马上占用完毕, 直接 kill 掉, 公司主服务器不敢做尝试 ( 大雾 ). 接着是 Jenkins, Jenkins 比较容易, 但是各种插件和繁琐配置头疼不已, 尤其是对私有 gitlab, 私有 npm 等特殊配置, 显得过于繁琐, 再其次, 我们目前需要部署的项目结构比较简单

目录

所以说 简单的 git hooks 就能满足要求

1. 在 remote host 下创建空仓库

git init -–bare demo // 创建空仓库
cd demo // 进入目录
git clone .... // 把代码 clone 到远程主机
vim  hooks/post-receive // 创建脚本文件chmod +x post-receive // 增加执行权限复制代码

post-receive 内容如下

  #!/bin/shunset GIT_DIRecho "begin!!!"cd /home/username/demo/demogit pullpwdecho "end!!!"exit 0复制代码

2. 本机设置

cd ...demo // 到对应目录
git remote  add prod  ssh://username@host:port/home/username/demo // 添加远程仓库
npm build
git push prod master // 部署 -> 启动 shell 脚本复制代码
运行截图.png

3. 后续操作

后面只需要每次 npm build 之后 把 静态文件也 commit 上去, 然后启动脚本就可以啦?
nginx path 指向静态文件目录就好啦 = =

初试 Git hooks 自动部署相关推荐

  1. 搭建gitserver并实现git push 自动部署

    git push自动部署能大大提交开发部署效率 git 自动部署分为2类, git server和部署不在同一个服务器上(比如通过github部署) git server和要部署的目录在同一个服务器上 ...

  2. git 服务器自动部署项目之GitHooks

    转自 http://blog.csdn.net/wsyw126/article/details/52167147 背景描述 在刚开始用git的时候,每次都是将本地将代码push到远程仓库,然后再ssh ...

  3. git hook 自动部署 linux git本地服务器搭建 git root 目录 git 仓库 git root/ .git

    服务器自动部署项目之GitHooks神器 - CSDN博客 -- 每次都是将本地将代码push到远程仓库,然后再ssh到服务器上git pull,甚是麻烦.在项目开发中使用git的时候,push之后, ...

  4. 利用Git搭建自动部署的Laravel环境

    目标:服务器上搭建Laravel环境,本地使用IDE进行开发,使用Homestead做本地调试环境,代码提交后自动部署到服务器Root目录下. 下面是整个流程的示意图: 1. 准备工作,搭建LNMP环 ...

  5. git管理和自动部署项目

    当一个项目需要纳入到版本控制的时候,选择的工具还是比较多的,最常见的就是工具有CVS,SVN,GIT等.在平时的开发中视情况而定,从来就没有最好的版本控制工具,只有最适合的工具.在这里我习惯用git来 ...

  6. linux git hook,前端通过githook一键自动部署项目

    git hook 自动部署 本文章教大家,使用git hook来实现本地开发代码一行命令自动上传到远程服务器. 第一步创建空git仓库 终端进入你需要放项目的文件夹,可以通过ssh root@host ...

  7. 在gitlab 中使用webhook 实现php 自动部署git 代码

    在技术团队讨论中,我们决定从svn 迁移到 git ,于是使用了gitlab,代码自动部署使用了webhook 在服务器上 1.开启PHP需要的环境支持 服务器环境必须先安装git 环境,webhoo ...

  8. 搭建git服务器及利用git hook自动布署代码

    注意:服务器:Ubuntu Server 14.04,我的项目比较小,所有操作都使用root,建议最好新建一个用户(需要有管理员权限,否则在后面使用hooks自动部署代码时会出现各种权限问题,很蛋疼的 ...

  9. gitlab 钩子 php,gitlab通过webhook.php自动部署标签

    //git webhook 自动部署脚本 $savePath = "/home/house/wxorder/"; $requestBody = file_get_contents( ...

最新文章

  1. 「SAP技术」SAP MM 不能向被分配了工厂代码的供应商采购服务?
  2. 技术:常见视频会议网络线路介绍
  3. OpenGL equirectangular等矩形环境图的实例
  4. java 悬浮提示框_表格(悬浮框提示)
  5. mybatis大于小于的转义
  6. 在线正则表达式可视化测试工具
  7. window 下 win10 jdk8安装与环境变量的配置(超级详细)
  8. 阿里字体图标库的使用
  9. 人脸检测 Retinaface - 数据集的处理(WIDER FACE)
  10. 百度地图API之绘制折线及点击事件
  11. 短诗整理5—景物+记事
  12. 三苯基膦(TPP)负载碘化BODIPY光敏剂(BDPI)纳米颗粒(PBDPI-TPP)介绍
  13. unity 控制对象移动、旋转
  14. Bit-Vector框架(1) — Reaching Definition Analysis
  15. Studio用布局编辑器设计UI界面
  16. 爬虫python教程百度云_【宝宝学爬】宝宝几个月会爬,婴儿几个月会爬,宝宝几个月会走路 - 妈妈网百科...
  17. PHP面试技巧——如何处理与面试官持不同观点这个问题?
  18. 关于猜数字游戏以及关机指令
  19. 媒体称中国在秘鲁千万吨级世界特大型铜矿被暂停
  20. simon手册翻译_part2

热门文章

  1. 【转】Zookeeper入门
  2. jpushinterface.setalias的几个参数都是啥意思_很多电工老师傅都不知道,低压断路器基本参数,你懂几个?...
  3. 访问服务器显示无法访问目标主机,发送4接收4无法访问目标主机
  4. oracle10g em服务没有,如何配置和重建Oracle 10G的em服务 dbcontrol
  5. mysql 日期 1970_Mysql中处理1970年前的日期(unixtime为负数的情况)负数时间戳格式化...
  6. 结巴分词有前空格_NLP 分词的那些事儿
  7. End-to-end Recovery of Human Shape and Pose
  8. batch downloading file in python
  9. pythonunicode和str_python2 中 unicode 和 str 之间的转换及与python3 str 的区别
  10. swagger怎么看接口数量_vue编写的功能强大的swagger-ui