| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- const fs = require("fs");
- const path = require("path");
- const ci = require("miniprogram-ci");
- const execSync = require("child_process").execSync;
- const distDir = path.resolve(__dirname, "../dist");
- // 实例化小程序 ci
- const project = new ci.Project({
- appid: "wx090cc3b016e45bfe",
- type: "miniProgram",
- projectPath: path.resolve(distDir, "./build/mp-weixin"),
- privateKeyPath: path.resolve(__dirname, "./private.wx090cc3b016e45bfe.key"),
- ignores: [],
- });
- const gitShortKey = execSync("git rev-parse --short HEAD").toString().trim();
- const gitCommitMsg = execSync("git log --pretty=format:“%s” -1")
- .toString()
- .trim()
- .replace(/(^["“])|(["”]$)/g, "");
- const gitCommitName = execSync("git log --pretty=format:“%cn” -1")
- .toString()
- .trim()
- .replace(/(^["“])|(["”]$)/g, "");
- let desc = `${gitCommitName}: ${gitCommitMsg}`;
- if (process.env.change_desc && process.env.operator) {
- desc = `${process.env.operator}: ${process.env.change_desc}`;
- }
- const onProgressUpdate = (taskStatus) => {
- switch (taskStatus._status) {
- case "doing":
- console.log("上传中: ", taskStatus._msg);
- break;
- case "done":
- console.log("上传完成: ", taskStatus._msg);
- break;
- }
- };
- // 测试环境用开发版,不上传至小程序后台
- const preview = async () => {
- try {
- fs.mkdirSync(path.resolve(distDir, `./qrcode`));
- } catch (e) {}
- const previewResult = await ci.preview({
- project,
- desc,
- setting: {},
- qrcodeFormat: "image",
- qrcodeOutputDest: path.resolve(distDir, `./qrcode/${gitShortKey}.jpg`),
- onProgressUpdate,
- pagePath: "pages/index/index", // 预览页面
- // searchQuery: 'a=1&b=2', // 预览参数 [注意!]这里的`&`字符在命令行中应写成转义字符`\&`
- });
- console.log("小程序上传完成🚀 ", previewResult);
- };
- // 正式环境用体验版,上传至小程序后台
- const publish = async () => {
- const version =
- process.env.MP_VERSON || process.env.version
- ? `1.0.${process.env.version}`
- : "1.0.0";
- try {
- const uploadResult = await ci.upload({
- project,
- version,
- desc,
- setting: {},
- onProgressUpdate,
- });
- console.log("小程序上传完成🚀 ", uploadResult);
- } catch (e) {
- console.info("上传出错,请检查网络或过会再试 ❌", e);
- throw new Error(e);
- }
- };
- (async () => {
- if (process.argv.includes("--publish")) {
- console.log("发布小程序🚀");
- publish();
- } else {
- console.log("上传预览小程序🚀");
- preview();
- }
- })();
|