Linux 使用微信开发者工具并接入持续集成

2019-06-28 10:06:33 +08:00
 shaoyaoju

安装

克隆仓库

$ 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 插件

  1. 安装 Jenkins changelog-environment.hpi 插件
  2. Build Environment 中,选择 Add Changelog Information to Environment
  3. Entry Format 选项框中输入 %3$s 并保存(%3$sgit commit message) ---> $SCM_CHANGELOG

配置 Jenkins

  1. 创建 Job
  2. 构建后执行 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

  1. Settings —> Integrations
    1. URL 在 Jenkins Configure 中可以看到,如 http://dev.com/project/wx
  2. Trigger —> Push events
  3. 在 Jenkins Global Configuration 中,关闭 Enable authentication for ‘/project ’ end-point 选项

其它

  1. 在 Jenkins 重复 build 同一个 commit,$SCM_CHANGELOG 为空
1706 次点击
所在节点    程序员
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/578201

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX