程序员

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

2018-09-10  本文已影响11人  Gundy_

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

具体脚本如下

#! /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"
  }
}
上一篇下一篇

猜你喜欢

热点阅读