zoukankan      html  css  js  c++  java
  • 前端自动打包部署上线记录

    思路:

    1、从github上拉取代码到服务器指定目录(git clone 代码仓库地址),

    2、进入到 服务器指定目录/仓库目录 执行依赖安装(例 npm install),

    3、根据安装依赖的结果,成功则执行打包编译(例 npm run build),

    4、根据编译结果,执行部署的操作(例 scp myfile username@192.168.1.100:/home

    开坑:

    在危险边缘试探~

    一开始为了测试远程执行命令,做了比较简单的试探

    直接把仓库先拷到服务器了,然后调接口用nodejs的exec去执行命令

    这里踩了一个坑,就是exec()无法执行‘cd 目录名’的命令,原因如下

    Yes, cd is not supported by exec. This is because exec spawns a child-process, and child-processes cannot change their parent's cwd. For example, exec('cd baz; myCommand'); would change the cwd for myCommand, but not for node.

    然后找到了解决办法,要去看nodejs关于进程的文档

    Each command is executed in a separate shell, so the first cd only affects that shell process which then terminates. If you want to run git in a particular directory, just have Node set the path for you:

    exec('git status', {cwd: '/home/ubuntu/distro'}, /* ... */);

    cwd (current working directory) is one of many options available for exec.


    目前为止,已经弄明白如何进行代码拉取、打包编译、自动部署

    但想要做一个完整的构建部署系统,还需要支持可查看的打包编译以及部署记录,需要可以回滚到之前的打包版本的功能云云

    为了支持快速回滚,那么系统盘里应适当保存最近的打包(比如说三天以内),所以也要考虑压缩问题,解/压缩的过程中,也需要考虑到负责打包的机子内存的问题


  • 相关阅读:
    maven:读取程序版本号的三种方案
    有无目标的人生差10倍!赶紧和娃把新年计划做起来
    都怎么了,其实早就知道,但是一直没有找到答案……
    python添加tab键功能
    电影观后感
    ipset批量配置iptables
    Oracle 触发器,事物
    Oracle PL/SQL高级应用 视图 同义词 序列
    Oracle PL/SQL高级应用 存储过程
    Oracle PL/SQL高级应用 游标
  • 原文地址:https://www.cnblogs.com/cheeseCatMiao/p/9856669.html
Copyright © 2011-2022 走看看