安装
克隆仓库
$ git clone https://github.com/shynome/wechat_web_devtools.git
构建镜像
$ docker build -t shynome/wxdt . # 注意 1. 若构建过程中、下载开发者工具缓慢,可以将最新版开发者工具下载到本地或者使用下面的链接 http://staticfile.shaoyaoju.org/wechat_web_devtools-6de256c091544207a3d9c51556860971d9db87d1.tar.gz
启动镜像
$ docker run -d --name wxdt -p 6080:80 -v $PWD:PROJECTS_FOLDER_PATH shynome/wxdt # 例如 $ docker run -d --name wxdt -p 6080:80 -v $PWD:/projects shynome/wxdt # 注意 1. $PWD 为当前执行命令的路径,建议选择为目标项目所在目录
启动 IDE
# 进入容器内 $ docker exec -it wxdt /bin/bash # 启动 IDE $ cli -o # 返回宿主机 $ exit
使用微信开发者工具
登录
$ docker exec -it wxdt cli -l
预览项目
docker exec -it wxdt cli -p /projects/XXXX # 注意 1. -p 后为小程序目录(包含 project.config.json 的目录),且该路径是相对容器的,不是宿主机。
上传
$ docker exec -it wxdt cli -u 版本号 @项目路径 --upload-desc '注释' # 注意 1. 项目路径是相对容器的,非宿主机。 2. 注释不能包含空格,否则空格后内容将被微信开发者工具过滤掉。可用下划线等符号代替空格。 3. 若使用 Jenkins 做持续集成,那么在 SHELL 中应当去掉 -t 参数。
关闭
$ docker exec -it wxdt cli --quit
安装 Jenkins 插件
- 安装 Jenkins changelog-environment.hpi 插件
- 在
Build Environment 中,选择 Add Changelog Information to Environment - 在
Entry Format 选项框中输入 %3$s 并保存(%3$s 为 git commit message) ---> $SCM_CHANGELOG
配置 Jenkins
- 创建 Job
- 构建后执行 SHELL
#!/bin/bash # 从 package.json 中读取版本 $ CURRENT_VERSION=$(node -p "require('./package.json').version") # 由于微信开发者工具限制,版本描述若带有空格,那空格后的内容将被截取,在此替换空格为下划线 # SCM_CHANGELOG 为 Jenkins changelog-environment.hpi 插件提供的变量:读取最新 commit message $ COMMIT_MSG=${SCM_CHANGELOG// /_} $ docker exec -i wxdt cli -u $CURRENT_VERSION@相对于容器中的项目路径 --upload-desc $COMMIT_MSG
配置 GitLab
Settings > Integrations - URL 在 Jenkins Configure 中可以看到,如
http://dev.com/project/wx
Trigger > Push events - 在 Jenkins
Global Configuration 中,关闭 Enable authentication for ‘/project ’ end-point 选项
其它
- 在 Jenkins 重复 build 同一个 commit,
$SCM_CHANGELOG 为空