# action-miniprogram-ci 将 [miniprogram-ci](https://developers.weixin.qq.com/miniprogram/dev/devtools/ci.html) 封装为 action,通过 Actions 实现小程序自动化上传/预览。 ## 一、用法 appid 和 setting 相关设置将会自动从 `project.config.json` 文件中读取,请确保 `project-path` 参数设置正确 ### 1.1 上传 ```yml - name: Miniprogram Ci Upload uses: seepine/action-miniprogram-ci@v1 with: project-path: ./dist/build/mp-weixin private-key: ${{ secrets.MP_PRIVATE_KEY }} version: 1.0.0 desc: '修复了一些已知问题' ``` ### 1.2 预览 默认生成终端二维码,可通过日志查看到所生成二维码 ```yml - name: Miniprogram Ci Preview uses: seepine/action-miniprogram-ci@v1 with: mode: preview project-path: ./dist/build/mp-weixin private-key: ${{ secrets.MP_PRIVATE_KEY }} robot: 2 # 可指定与上传不同的 ci 机器人 ``` ### 1.3 输出内容 默认会将 appid 和 version 输出到 `outputs` 中,后续步骤可通过 `steps.mpci.outputs.appid` 等获取。 同时更可设置输出文件,自定义任何输出内容,例如搭配 `peter-evans/create-or-update-comment@v3` 实现 GitBots 自动将二维码评论到工单或 PR 中。 ````yml - name: Miniprogram Ci Preview uses: seepine/action-miniprogram-ci@v1 with: mode: preview project-path: ./dist/build/mp-weixin private-key: ${{ secrets.MP_PRIVATE_KEY }} robot: 2 # 默认输出在 ./output.txt output: | **扫码预览** ``` {qrcode} ``` - name: Create comment uses: peter-evans/create-or-update-comment@v3 with: issue-number: ${{ github.event.pull_request.number }} body-path: output.txt # 读取上一步生成的output.txt文件内容 ```` ## 二、输入(Inputs) | Name | Description | Default | | ------------------ | ------------------------------------------------------------------------------------------------------------- | --------------------- | | mode | ci 模式,可选 upload/preview. | upload | | type | 小程序类型,可选 miniProgram/miniProgramPlugin/miniGame/miniGamePlugin | miniProgram | | project-path | 项目的路径,即 project.config.json 所在的目录,默认根路径,即./, 若 uniapp 项目,一般传入./dist/build/mp-weixin | ./ | | private-key | 私钥,在获取项目属性和上传时用于鉴权使用,在微信公众平台上登录后下载, 建议通过 secrets 设置 | | | private-key-path | 私钥完整路径,private-key 为空时使用路径值,例如./private.key | | | ignores | 指定需要排除的规则,默认忽略 node_modules 路径 | node_modules/**/* | | version | 自定义版本号,空则根据时间戳自动生成 YYYY.MMDD.HHmmss | YYYY.MMDD.HHmmss | | desc | 自定义备注 | 'fix some bug.' | | robot | 指定使用哪一个 ci 机器人,可选值:1 ~ 30 | 1 | | threads | 指定本地编译过程中开启的线程数 | 默认获取 cpu 线程数 | | qrcode-format | (preview 有效) 返回二维码文件的格式,可选 terminal/image/base64, 可设置 output 参数将其输出到 output 文件中 | terminal | | qrcode-output-dest | (preview 有效) 若 qrcode-format 非 terminal 时设置二维码文件输出路径 | ./preview-qrcode.png | | page-path | (preview 有效) 预览页面路径 | | | search-query | (preview 有效) 预览页面路径启动参数 | | | scene | (preview 有效) 具体含义见场景值列表 | 1011 | | output | 设置输出文件,可使用{appid},{version},{qrcode}作为占位符 | | | output-path | 设置输出文件路径 | ./output.txt | ## 三、输出(Outputs) ### 3.1 输出参数 通过 `steps.[step_id].outputs.appid` 取值 | Name | Description | | ------- | -------------------- | | appid | 读取到的小程序 appid | | version | 版本号 | ### 3.2 输出文件 设置了 output 输出文本有值,可通过{appid},{version},{qrcode}作为占位符,例如 ````yml - name: Miniprogram Ci Preview uses: seepine/action-miniprogram-ci@v1 with: mode: preview project-path: ./dist/build/mp-weixin private-key: ${{ secrets.MP_PRIVATE_KEY }} # 默认输出在 ./output.txt output: | 自动预览完成,appid为{appid},版本号为{version} **扫码预览** ``` {qrcode} ``` ````