IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 微信小程序集成jenkins自动打码 -> 正文阅读

[系统运维]微信小程序集成jenkins自动打码

背景

小程序编译、打包、预览均需要依赖开发者工具进行,且团队中成员均需要开通代码仓库权限,比较繁琐。故在官方论坛中找到以下CI集成插件,并结合jenkins做成了自动打码,详细介绍如下

一、miniprogram-ci工具

概述

miniprogram-ci 是从微信开发者工具中抽离的关于小程序/小游戏项目代码的编译模块。开发者可不打开小程序开发者工具,独立使用 miniprogram-ci 进行小程序代码的上传、预览等操作。

详细介绍见官网

https://developers.weixin.qq.com/miniprogram/dev/devtools/ci.html

二、工具准备内容

  1. 密钥
  2. IP白名单配置
  3. appid
  4. 一个存放打包后二维码的目录

三、注意事项

  1. 密钥、存放二维码的目录不能和小程序代码同级,需要分开(不然小程序目录大小会超出限制)
  2. 需要提前安装nodejs(目前我安装的版本是v10.8.0,其他版本自行测试)
  3. ip白名单中的ip可能会失效(本地出口ip变化),具体在工具运行时会提示,按照提示,在小程序后台更新一下ip白名单即可

四、开始

安装miniprogram-ci

npm install -g miniprogram-ci

运行CI命令

miniprogram-ci \
  preview \
  --pp ./demo-proj/ \
  --pkp ./private.YOUR_APPID.key \
  --appid YOUR_APPID \
  --uv PACKAGE_VERSION \
  -r 1 \
  --enable-es6 true \
  --proxy YOUR_PROXY \
  --qrcode-format image \
  --qrcode-output-dest '/tmp/x.jpg'

出现以下提示,则证明成功

在这里插入图片描述

如报错,按报错提示解决即可

五、集成到jenkins

jenkins安装过程忽略,默认均安装成功

1、所需插件

  • OWASP Markup Formatter
  • Git
  • set build description
  • Text Finders
  • Git Parameter Plug-In
  • build user vars

2、更换jenkins build页面描述信息展示为html

  • 安装OWASP Markup Formatter插件
  • 在Manage Jenkins -> Configure Global Security,将Markup Formatter的设置更改为Safe HTML即可
    注意:我测试下来,必须安装OWASP Markup Formatter插件才能将Markup Formatter的设置更改为Safe HTML

3、配置jenkins的git,用于拉取代码,这里直接贴图

在这里插入图片描述
在这里插入图片描述

4、打包命令配置

#!/bin/bash -il

app_id="xxxx"

case $environment in
"qa") 
    app_id="xxxx"
;;
"pl")
    app_id="xxxx"
;;
"production")
    app_id="xxxx"
;;
esac
# echo $app_id
# echo $BUILD_USER_ID

echo "-----------当前【所选环境】为:$environment-----------"
echo "-----------当前【环境所对应的appid】为:$app_id-----------"
echo "-----------当前【操作类型】为:$operation_type-----------"
echo "-----------当前【小程序路径】为:$pagePath-----------"
echo "-----------当前【版本号】为:$version-----------"

echo "-----------正在复制环境数据config-${environment}.js到config.js-----------"
cd $WORKSPACE/config
sudo rm -f config.js
sudo mv config-${environment}.js config.js
echo "-----------环境数据复制完毕!!!-----------"

case $environment in
"qa") 
    sudo sed -i "s#weimobSubEnvLabel[^,]*#weimobSubEnvLabel: \'$weimobSubEnvLabel\'#g" config.js
	echo "-----------加入子环境标识,【子环境标识】为:$weimobSubEnvLabel!!!-----------"
;;
"pl")
    weimobSubEnvLabel="无"
    echo "-----------当前环境无需加入子环境标识!!!-----------"
;;
"production")
    weimobSubEnvLabel="无"
    echo "-----------当前环境无需加入子环境标识!!!-----------"
;;
esac

#if  [ ! -n "$desc" ] ;then
#	echo "-----------当前build用户为$BUILD_USER_ID!!!-----------"
#    export desc=$BUILD_USER_ID
#else
#	echo "-----------当前build用户为$desc!!!-----------"
#fi

time=$(date "+%Y%m%d%H%M%S")

case $operation_type in
"preview") 
    miniprogram-ci \
  preview \
  --pp $WORKSPACE \
  --pkp /software/xcx-key/private.$app_id.key \
  --appid $app_id \
  --uv $version \
  --enable-es6 true \
  --enable-minify true \
  --preview-page-path "${pagePath}" \
  --qrcode-format image \
  --qrcode-output-dest "/Qrcode_img/${time}.jpg"
;;
"upload")
    miniprogram-ci \
  upload \
  --pp $WORKSPACE \
  --pkp /software/xcx-key/private.$app_id.key \
  --appid $app_id \
  --uv $version \
  -r 1 \
  --enable-es6 true \
  --enable-minify true \
;;
esac

5、构建后操作

  1. 构建后操作添加一个set build description
  • Regular expression输入(\w*.jpg) 此处用于匹配日志中的二维码文件名
  • Description输入如下数据
<h3>发布环境:$environment</h3> <h3 style="font-family:Courier; font-weight:bold; color:Crimson; font-size:20">发布分支:$git_branch</h3> <h3>子环境标识:$weimobSubEnvLabel</h3> <h3> 编译用户:$BUILD_USER_ID</h3> <img src ="图片存放目录\1" height="140" width="140" >

在这里插入图片描述

  1. 构建后操作添加一个Text Finders
  • Regular expression输入Could not determine description,见下方截图
    在这里插入图片描述

六、最终效果

在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-13 11:48:04  更:2021-10-13 11:50:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 19:42:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码