Centos8+Jenkins+微信小程序前端自动发布体验版

news2024/11/18 13:39:27

文章目录

  • **一、 实现:**
  • **二、项目:**
  • **三、环境配置:**
  • **四、步骤:**
  • **五、遇到的问题**

一、 实现:

jenkins打通微信开发平台,自动上传代码

二、项目:

微信小程序原生开发

三、环境配置:

Centos8
Jenkins2.277
miniprogram-ci 插件

四、步骤:

1.jenkins拉取仓库代码
2.因为是原生开发不依赖第三方框架或库,在jenkins拉取代码的目录下(项目的根目录),执行安装miniprogram-ci插件(这将会把 miniprogram-ci 安装到项目的 node_modules 目录下)

npm install miniprogram-ci --save-dev

3.登录微信公众平台拿到项目的密钥、appid,配置白名单(这里生成密钥的时候能直接以文件的形式下载下来,然后上传到linux上)
在这里插入图片描述
4.Jenkins中用shell命令执行
(a.这里可以直接引用jenkins自带的变量)

#!/bin/bash
echo "构建号为 ${BUILD_NUMBER},工作区目录为 ${WORKSPACE}"
set -e
GIT_COMMIT_MSG=$(git log -1 --pretty=format:%s)
echo "当前 Git 最新提交信息: $GIT_COMMIT_MSG"
export SCM_CHANGELOG="$GIT_COMMIT_MSG"
WORKSPACE=${WORKSPACE}

cd "$WORKSPACE"

node -e '
const ci = require("miniprogram-ci");
const BUILD_NUMBER = process.env.BUILD_NUMBER;
const SCM_CHANGELOG = process.env.SCM_CHANGELOG;
const setting = {
  es6: true
};
const project = new ci.Project({
    appid: "wx86c347",
    type: "miniProgram",
    projectPath: "'"$WORKSPACE"'",
    privateKeyPath: "/opt/miniProgram/private.wx869347.key",
    ignores: ["node_modules/**/*"],
});

(async () => {
    // 上传信息
    const uploadResult = await ci.upload({
        project,
        version: `2.0.${BUILD_NUMBER}`,
        desc: `${SCM_CHANGELOG}`,
        setting: {
            es6: true 
        },
        onProgressUpdate: console.log,
    });
    console.log(uploadResult);

    // 预览信息
    const previewResult = await ci.preview({
        project,
        version: `2.0.${BUILD_NUMBER}`,
        desc: `${SCM_CHANGELOG}`,
        setting: {
            es6: true 
        },
        qrcodeFormat: "image",
        qrcodeOutputDest: "ci/erweima.jpg",
        onProgressUpdate: console.log,
    });
    console.log(previewResult);
})();'

五、遇到的问题

0.因为本身是原生开发,不需要安装或者上传依赖,也不需要npm build
1.centos中只安装miniprogram-ci插件即可,不用安装微信开发者平台
2.密钥直接用微信平台直接下载的密钥文件
3.20003 Error: {“errCode”:-1,“errMsg”:“inner upload fail with errcode: -80057, errmsg: invalid file: components/login/login.js, 1:7, SyntaxError: Unexpected token {import {”}
----这个恶心的报错解决方案:
setting: {
es6: true
},)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/788697.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PowerPoint如何修改“默认保存路径”?

很多时候,我们做好PPT后都要保存,一般会保存在创建PPT的文件夹里,或者另外设置保存的路径。 如果经常需要制作PPT,又不想每次都要重新选择保存位置,我们可以创建或修改“默认保存路径”,这样每次关闭PPT后…

集群及LVS简介、LVSNAT模式原理、LVSNAT模式配置、LVSDR模式原理、LVSDR模式配置、LVS错误排查

day01 day01集群LVS配置LVS NAT模式配置LVS NAT模式步骤LVS DR模式配置LVS DR模式 集群 将很多机器组织到一起,作为一个整体对外提供服务 集群在扩展性、性能方面都可以做到很灵活 集群分类: 负载均衡集群:Load Balance高可用集群&#x…

wangeditor编辑器配置

vue项目中使用编辑器&#xff0c;轻量&#xff0c;操作栏选取自己需要的 官网地址&#xff1a;用于 Vue React | wangEditor 使用在vue项目中引入 npm install wangeditor/editor --savenpm install wangeditor/editor-for-vue --save 封装成组件使用 <template>&…

[LitCTF 2023]作业管理系统

打开环境后是一个登录框&#xff0c;还以为是sql注入&#xff0c;但是尝试之后没有回显&#xff0c;尝试一下弱密码爆破咯 爆出都是admin 进入后可以看到很多选项&#xff0c;都是可以访问的 &#xff0c;说明这道题还有很多解决方法 我们可选择上传文件&#xff0c;没有任何过…

STM32CubeIDE(外部中断)

目录 一、配置时钟树 二、配置IO 三、配置中断优先级 四、当发生外部中断时会进入中断服务函数 一、配置时钟树 二、配置IO 三、配置中断优先级 四、当发生外部中断时会进入中断服务函数

Stable Diffusion本地化部署,实现免费的AI绘制图片

利用Claude进行问答&#xff0c;首先我们询问如何进行AI画图&#xff1a; 我们得到了答案&#xff0c;这里我们问问第三个的网址&#xff1a; 由于在线的都需要收费和限制次数&#xff0c;所以问问有没有本地化的项目&#xff1a; 这里我们得到了答案&#xff0c;前面两个链…

flutter开发实战-jsontodart及 生成Dart Model类

flutter开发实战-jsontodart及 生成Dart Model类。 在开发中&#xff0c;经常遇到请求的数据Json需要转换成model类。这里记录一下Jsontodart生成Dart Model类的方案。 一、JSON生成Dart Model类 在开发中经常用到将json转成map或者list。通过json.decode() 可以方便 JSON 字…

mysql主从复制 读写分离

目录 1.主从复制类型 2.主从复制工作流程(原理) 3.mysql三种同步方式 4.案例 1.主从复制类型 基于语句的复制 基于行的复制 混合类型的复制 2.主从复制工作流程(原理) 两日志 三线程 收到数据主放入二进制日志中 从服务器通过io线程发送请求进入主的dump线程…

element实现角色管理页面

用的element&#xff0c;Tree 树形控件来实现的 <template><div class"p-t-20"><div class"table-bg"><Title title"角色名称"><span>{{role.roleName}}</span></Title><div class"menu-lis…

数学建模-主成分分析

有很多变量并且变量之间有很强的关联关系时使用&#xff0c;解决多重共线性问题没必要进行降维信息损失后然后进行评分&#xff0c;TOPSIS可以直接利用所有数据。指标有各种类型&#xff0c;没有进行正向化

【GoLang】MAC安装Go语言环境

小试牛刀 首先安装VScode软件 或者pycharmmac安装brew软件 brew install go 报了一个错误 不提供这个支持 重新brew install go 之后又重新brew reinstall go 使用go version 可以看到go 的版本 使用go env 可以看到go安装后的配置 配置一个环境变量 vim ~/.zshrc, # bre…

简单的SQL注入

SQL注入攻击是通过操作输入来修改SQL语句&#xff0c;用以达到执行代码对WEB服务器进行攻击的方法。简单的说就是在post/getweb表单、输入域名或页面请求的查询字符串中插入SQL命令&#xff0c;最终使web服务器执行恶意命令的过程。可以通过一个例子简单说明SQL注入攻击。假设某…

mysql学习系列(2)--忘记mysql登录密码怎么办?

系列文章目录 文章目录 系列文章目录前言一、登录mysql二、操作步骤1.找到mysql.exe所在的文件夹2.WinR打开cmd&#xff0c;进入bin文件夹3.跳过mysql用户验证3.net start mysql启动服务 总结 前言 一、登录mysql mysql -uroot -p忘记密码无法进入&#xff1a; 二、操作步骤…

【面试系列】JDK动态代理和CGLIB静态代理

文章目录 前言JDK动态代理代码实例Cglib 代理代码实例两者优缺点 前言 是否在面试过程中经常被问到Spring的代理的问题&#xff1a;比如说几种代理方式&#xff1f;两种代理方式的区别&#xff1f;或者问为什么JDK动态代理只能代理接口&#xff1f; 如果你能回答出来JDK动态代…

Vortex Indicator 构建交易策略

数量技术宅团队在CSDN学院推出了量化投资系列课程 欢迎有兴趣系统学习量化投资的同学&#xff0c;点击下方链接报名&#xff1a; 量化投资速成营&#xff08;入门课程&#xff09; Python股票量化投资 Python期货量化投资 Python数字货币量化投资 C语言CTP期货交易系统开…

Day 40算法记录|dp完全背包问题 06

完全背包问题 基本知识01背包完全背包 518. 零钱兑换 II377. 组合总和 Ⅳ 基本知识 01背包 二维&#xff0c;两层for循环的循序&#xff0c;物品和背包不重要。 d p [ i ] [ j ] m a x ( d p [ i − 1 ] [ j ] , d p [ i − 1 ] [ j − w e i g h t [ i ] ] v a l u e [ i…

docker基础6——制作镜像(dockerfile)

文章目录 一、基本了解1.1. 基于centos构建镜像1.2 基于alpine制作镜像 二、常用指令三、制作httpd镜像 一、基本了解 Dockerfile 是一个文本格式的配置文件&#xff0c;可以使用Dockerfile 快速创建自定义镜像。Dockerfile 由一行行命令语句组成&#xff0c;并且支持以 # 开头…

Python实现HBA混合蝙蝠智能算法优化XGBoost分类模型(XGBClassifier算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蝙蝠算法是2010年杨教授基于群体智能提出的启发式搜索算法&#xff0c;是一种搜索全局最优解的有效方法…

PROFINET转TCP/IP网关profinet网线接头接法

大家好&#xff0c;今天要和大家分享一款自主研发的通讯网关&#xff0c;捷米JM-PN-TCPIP。这款网关可是集多种功能于一身&#xff0c;PROFINET从站功能&#xff0c;让它在通讯领域独领风骚。想知道这款网关如何实现PROFINET和TCP/IP网络的连接吗&#xff1f;一起来看看吧&…