美文网首页程序员
小程序开发工具强制 GIT 提交

小程序开发工具强制 GIT 提交

作者: Gundy_ | 来源:发表于2018-09-10 09:40 被阅读11次

    小程序是支持自定义预处理命令的,提供了 beforeCompile,beforePreview 和 beforeUpload 三个预处理钩子,分别在编译前、预览前和上传前触发。所以我就想利用这个钩子,在上传前判断当前仓库的状态,如果不符合要求就组织上传。目前我主要是做以下三种操作:

    • 判断当前仓库是否有代码没有 commit,避免上线的版本有未提交的代码-
    • 判断当前仓库是否是 master 分支,避免上线的版本非主分支代码
    • 推送当前分支代码到远端,避免其它协作者无法拉取到线上最新的代码

    具体脚本如下

    #! /usr/bin/env sh
    # 检查分支是否为主分支
    br_name=$(git symbolic-ref --short HEAD);
    if [ $br_name != "master" ]
    then
      echo "[错误]当前分支名为 $br_name 但是上传包必须是在 master 分支";
      exit 42;
    fi
    # 检查分支上是否有未提交的代码
    if [[ ! -z $(git status --porcelain) ]]
    then
      echo "[错误]你有未提交的代码,上传包前请将代码提交到仓库";
      exit 42;
    fi
    # 最后自动提交到远端仓库
    git push;
    

    其中 exit 42 表示是异常退出,微信开发者工具监听到异常退出后会中止上传进程,你也可以是别的非0错误号,更多的错误号可以查看 torvalds/linux 仓库。

    最后我们还需要在微信开发者工具-详情中勾选启用自定义处理命令,并在上传前预处理中输入 ./bin/beforeUpload 地址,该地址即为刚才你的脚本所在位置。如果是修改 project.config.json 文本内容添加的,还是需要在微信开发者工具中手动勾选下启动自定义处理命令,默认开发者工具是不开启这个选项的

    image.png
    {
      "scripts": {
        "beforeCompile": "",
        "beforePreview": "",
        "beforeUpload": "./bin/beforeUpload"
      }
    }
    

    相关文章

      网友评论

        本文标题:小程序开发工具强制 GIT 提交

        本文链接:https://www.haomeiwen.com/subject/mdijgftx.html