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

news/2024/11/17 4:52:06/

文章目录

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

一、 实现:

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.ppmy.cn/news/977658.html

相关文章

临渊羡鱼,不如退而结网。(做一个对未来的乐观派,规规矩矩地成为实力派。)

文章目录 引言I 悲观主义1.1 原因1.2 危害II 乐观主义者的做事情方法2.1 积累的效应2.2 相比历史,未来更重要。2.3 成为一个实力派2.4 凡战者,以正合,以奇胜。see also引言 未来会比今天更好,这是我们应有的信心。做一个对未来的乐观派,规规矩矩地成为实力派。临渊羡鱼,…

js 对象中替换键名,值不变;对象中键的值是数组,将数组转换为字段串格式

需求1:在对象中需要键名为’a’的键改为‘b’,并保持值不变 先使用 Object.keys() 方法获取对象的所有键名,Array.prototype.reduce() 方法遍历键名数组,并创建一个新的对象。 遍历过程中,使用新的键名存储旧键名对应…

【计算机编程语言】MySQL8+JDBC+Eclipse

文章目录 MySQL1.简介1.1数据库分类1.2MySQL 2.基础2.1数据类型2.1.1数值2.1.2字符串2.1.3时间/日期2.1.4null 2.2字段属性2.3数据库引擎2.4设置字符集编码2.5创建数据库/表2.6修改/删除 表 3.数据管理3.1外键(了解)3.2DML3.3INSERT3.4UPDATE3.5DELECT3.…

静态html引入ucharts并直接使用组件标签

由于官方不能直接使用qiun-vue-ucharts在静态html页面使用。 DIY可视化对此类库进行了改进,把它的包独立打包成一个可以依赖的JS。 首先定义一个核心JS,用于打包生成uchart import qiunVueUcharts from qiun/vue-ucharts;const install (app) > {…

【多选框、表格全选】element el-checkbox、el-table

话不多说 先看效果&#xff1a; 多选框&#xff1a; 表格全选&#xff1a; <template><div><div class"titleLabel"><div class"lineStyle"></div>统计部门</div><div style"display: flex"><e…

Arcgis之 KML/KMZ文件转shp

一般我们在Goole Earth上勾画的区域导出后都为KML或者KMZ格式的&#xff0c;但无法在arcgis等软件上直接应用&#xff0c;故需进行一定的转换 1.打开ArcMap&#xff0c;选择ArcToolbox->Conversion Tools->From KML->KML To Layer 得到如下结果&#xff08;由于本KML…

01背包相关题

题解&#xff1a;dp[j]表示目标和为j时的最大组合种数 class Solution { public:int dp[1005];int findTargetSumWays(vector<int>& nums, int target) {int val;int sum0;for(int i0;i<nums.size();i){sumnums[i];}int wsumtarget;if(w%21){return 0;}else{valw…

打开Android device monitor

X:\assdk\tools monitor.bat 双击 更新到最新