V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shaoyaoju
V2EX  ›  程序员

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

  •  
  •   shaoyaoju ·
    juzhiyuan · 2019-06-28 10:06:33 +08:00 · 1665 次点击
    这是一个创建于 1735 天前的主题,其中的信息可能已经有所发展或是发生改变。

    安装

    克隆仓库

    $ 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 为空
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1419 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:26 · PVG 01:26 · LAX 10:26 · JFK 13:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.