首页 > 编程语言 >Jenkins + 微信开发者工具:一键搞定小程序自动化构建与预览!

Jenkins + 微信开发者工具:一键搞定小程序自动化构建与预览!

时间:2025-01-20 13:30:18浏览次数:3  
标签:slave 预览 windows 微信 sys Jenkins jenkins

微信小程序开发工具目前只支持mac和windows,所以jenkins的slave也只能使用这两种系统,这里我已windows为例。构建批处理仅作了功能实现,更多的判断逻辑自行添加。

微信工具提供了客户端HTTP服务两种方式给外部调用,这里以http方式为例

jenkins添加windows端slave

修改全局安全设置

”JNLP代理协议的TCP端口“ 配置成 ”随机选取“,点开”代理协议…“,勾选“Java Web Start Agent Protocol/4(TLS加密)”。我这里选择固定端口是因为在阿里云做了端口限制,只放开指定端口
image.png
找到“隐藏的安全警告”,将“Enable Agent → Master Access Control”的复选框打勾
image.png

添加slave节点:系统管理->节点管理->新建节点

image.png
image.png
点击launch按钮下载slave-agent.jnlp文件,点击slave.jar下载该jar包,并复制到slave机器的jenkins目录
1.png
运行slave-agent.jnlp
2.png
快捷键win+r输入services.msc,找到jenkins-agent修改配置
我这里使用了管理员账户,也可以使用上面的本地系统账户,但要记得勾选允许服务与桌面交互
image.png

安装依赖工具

想要运行slave,windows节点需要先安装java,构建环节还会用到一些其他工具,如gitcurl直接下载安装,记得要设置对应的环境变量

在slave节点配置中配置环境变量,直接把windows机器的path环境变量拷贝过来即可
这里在path变量补充一个"C:\Windows\SysWOW64;",否则一些内置命令也会无法调用
image.png
image.png
image.png

安装微信开发者工具,然后设置计划任务自动运行,以便提供http服务
image.png
名称:mp_ide
触发器:计算机启动时
操作:启动程序
image.png
image.png
image.png
如果不重启,记得自己手动启动一次

jenkins配置

安装插件:

description setter plugin
Git Parameter Plug-In

修改全局安全配置:

image.png

创建自由风格任务

image.png

勾选参数化构建

添加Git Parameter

image.png
image.png

添加2个文本参数

image.png
image.png

限制项目的运行节点在windows-slave

image.png

配置git地址

image.png

构建环节

第一次增加批处理

[外链图片转存中…(img-VlJRhpcF-1737277559676)]

:: 获取服务端口
set /p PORT=<"C:\Users\test-ops\AppData\Local\微信开发者工具\User Data\Default\.ide"
echo "微信开发者工具运行在%PORT%端口"

:: 获取状态码判断服务是否启动成功
curl -sL -w %%{http_code} http://127.0.0.1:%PORT%/open

:: 获取登录二维码
curl http://127.0.0.1:%PORT%/login?format=base64 > qrcode.txt
python "D:\jenkins\base64tojepg.py" qrcode.txt qrcode.jpg
echo [QRCode generated succeed]%BUILD_NUMBER%

python脚本:base64tojepg.py

import os,base64,sys 

if len(sys.argv) == 3:
    inputFileName=sys.argv[1]
    outputFileName=sys.argv[2]
    allstr=open(inputFileName).read()
    idx=allstr.find(',')
    bstr=allstr[idx+1:]
    imgdata=base64.b64decode(bstr)
    file=open(outputFileName,'wb')
    file.write(imgdata)
    file.close()
else:
    print('Useage: python base64tojpeg.py inputFileName outputFileName')
第一次添加 build description用于显示登录二维码

image.png
image.png
Regular expression

\[QRCode generated succeed\](.*)

Description

<img src= "${JOB_URL}ws/qrcode.jpg?t=_\1" height= "200" width= "200" /><br/>微信扫码登录
第二次添加批处理
:: 延迟15秒,等待扫码登陆,否则无法进行代码上传
@ping 127.0.0.1 -n 15 >nul

:: 获取服务端口
set /p PORT=<"C:\Users\test-ops\AppData\Local\微信开发者工具\User Data\Default\.ide"
echo "微信开发者工具运行在%PORT%端口"

:: 获取预览二维码
del /f /s /q qrcode.txt qrcode.jpg
curl -o preview.jpg http://127.0.0.1:%PORT%/preview?projectpath=%WORKSPACE%
echo [QRCode preview generated succeed]%BUILD_NUMBER%

:: 上传代码
for /f "delims=" %%i in ('python D:\jenkins\urlencode.py %upload_desc%') do set desc=%%i
curl "http://127.0.0.1:%PORT%/upload?projectpath=D:\mp&version=%upload_version%&desc=%desc%"
echo "上传成功!请到微信小程序后台设置体验版或提交审核!"

python脚本:urlencode.py

from urllib.parse import quote
import sys

data = sys.argv[1]
print(quote(data))
第二次添加 build description用于显示开发预览二维码

Regular expression

\[QRCode preview generated succeed\](.*)

Description

<img src= "${JOB_URL}ws/preview.jpg?t=_\1" height= "200" width= "200" /><br/>微信扫码预览

执行构建

构建过程中,可以直接显示二维码
这个是用来登录小程序开发工具的,如果不登录无法进行代码上传
image.png
这个是预览小程序的二维码,由于预览要求源码目录大小不能超过2M,所以在生成预览二维码前,先把之前的登录二维码相关文件删除,尽可能保证源码目录大小
image.png

标签:slave,预览,windows,微信,sys,Jenkins,jenkins
From: https://blog.csdn.net/biyanjiangdu04942/article/details/145244672

相关文章

  • 基于微信小程序的社区养老小程序设计与实现
    ......
  • 两款开源的微信对话生成器,做成了在线小工具
    如果你也想在社交媒体上、视频创作中或者日常娱乐里,展现出与众不同的一面,那么微信对话生成器绝对是你不可错过的好帮手。今天,就让我们一起走进3M万能在线工具箱https://3m.panziye.com中的两款微信对话生成器,看看它们如何为我们的创意插上翅膀。微信对话在线生成器这款微信对话......
  • 基于微信小程序的优购电商系统设计与实现(LW+源码+讲解)
    专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。主要内容:免费功能设计、开题报告、任务书、中......
  • jenkins + gogs + docker + nginx 完成自动化部署
    jenkins+gogs+docker+nginx完成自动化部署app安装部署1.docker-compose配置文件version:'3'services:nginx:image:nginx:latestports:-"80:80"volumes:-./nginx.conf:/etc/nginx/nginx.confdepends_on:-jen......
  • 基于Spring Boot的微信小程序个人运动健康管理平台
    一、项目背景与意义随着人们生活水平的提高和健康意识的增强,越来越多的人开始关注自己的运动健康状况。然而,传统的运动管理方式存在诸多不便,如记录不准确、计划不合理、缺乏专业指导等。因此,开发一个基于SpringBoot的微信小程序个人运动健康管理平台,能够打破传统运动管理......
  • SpringBoot基于微信小程序二手交易平台的设计与实现
    1.引言在当今的软件开发领域,企业级应用的开发和部署速度直接影响着业务的竞争力。SpringBoot以其轻量级、快速启动和强大的集成能力,成为构建现代企业级应用的首选框架。本文将带您深入了解SpringBoot框架的核心特性,并展示如何利用它构建一个高效、可扩展的系统。2.开发......
  • goIM仿微信实现小微消息沟通
    goIM仿微信实现小微消息沟通goIM小微沟通介绍开发初衷软件架构已实现功能其它试用goIM小微沟通介绍仿微信实现小型消息沟通,兼容web,微信小程序。用Go实现底层服务,uniapp实现的前端,前后端已打通。同一用户可实现多端登录,多端接收消息(如微信手机与微信PC一起开,可一......
  • 多微信管理太低效?get自动化设置,效率超90%的人!
    在当今数字化营销的时代,管理多个微信号成为许多企业和个人运营者的日常工作。但手动操作有时候不仅耗时费力,还容易出错。微信管理系统的自动化功能,为我们提供了高效管理多个微信号的解决方案,让管理工作事半功倍。一、自动加好友只需将客户的手机号或微信号批量导入到系统中,......
  • 基于微信小程序的大学生党务学习平台的设计与实现
    目录项目介绍系统设计系统展示核心代码项目专栏推荐为什么选择我?获取源码项目介绍如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统大学生党务学习平台信息......
  • Java 批量检测微信小程序封禁状态
    项目代码importjava.io.InputStreamReader;importjava.io.BufferedReader;importjava.net.HttpURLConnection;importjava.net.URL;importorg.json.JSONObject;publicclassMiniProgramStatusChecker{//要检查的小程序AppID列表privatestatic......