t-comm
Version:
专业、稳定、纯粹的工具库
243 lines (240 loc) • 9.3 kB
JavaScript
import { b as __awaiter, c as __generator } from '../tslib.es6-48fa7a9b.js';
import { reportToRdPlatform } from '../rd-platform-report/rd-platform-report.js';
import { getRobot, getCIConfig } from './write-env-and-private-key.js';
import { MpCI } from './mp-ci.js';
import { getInnerBundleBuildDesc } from './helper.js';
import 'fs';
import 'path';
import '../rainbow/rainbow-user.js';
import '../rainbow/helper/helper.js';
import '../base/list/flat.js';
import '@babel/runtime/helpers/typeof';
import '../fs/fs.js';
import '../wecom-robot/base.js';
import '../wecom-robot/helper.js';
import '../git/git.js';
import '../node/node-command.js';
import '../time/time.js';
import '../canvas/img-text.js';
import '../tencent-cloud/cos/cos.js';
import '../tencent-cloud/cos/helper.js';
import '../bite/format-bite.js';
import '../node-img/img.js';
import '../tencent-cloud/cos/link.js';
import './config.js';
import '../wecom-robot/message.js';
function flattenSubPackages(result) {
var _a = result.subPackageInfo,
subPackageInfo = _a === void 0 ? [] : _a;
return subPackageInfo.reduce(function (acc, item) {
acc[item.name] = item;
return acc;
}, {});
}
function reportToRd(_a) {
var _b, _c;
var bundleInfo = _a.bundleInfo,
rdProjectId = _a.rdProjectId,
subProject = _a.subProject,
robot = _a.robot,
lastCommit = _a.lastCommit,
repo = _a.repo,
env = _a.env,
branch = _a.branch,
rdHost = _a.rdHost,
bkStartUserName = _a.bkStartUserName,
bkStartType = _a.bkStartType,
bkBuildUrl = _a.bkBuildUrl,
bkPipelineId = _a.bkPipelineId;
return __awaiter(this, void 0, void 0, function () {
var mainBundleSize, totalBundleSize, reportToRdRes;
return __generator(this, function (_d) {
switch (_d.label) {
case 0:
if (!(bundleInfo === null || bundleInfo === void 0 ? void 0 : bundleInfo.__APP__)) return [2 /*return*/];
mainBundleSize = parseInt("".concat((((_b = bundleInfo.__APP__) === null || _b === void 0 ? void 0 : _b.size) || 0) / 1024), 10);
totalBundleSize = parseInt("".concat((((_c = bundleInfo.__FULL__) === null || _c === void 0 ? void 0 : _c.size) || 0) / 1024), 10);
return [4 /*yield*/, reportToRdPlatform({
data: {
projectId: rdProjectId,
project: repo || '',
subProject: subProject,
bkStartUserName: bkStartUserName || '',
bkStartType: bkStartType || '',
bkBuildUrl: bkBuildUrl || '',
bkPipelineId: bkPipelineId || '',
env: env || '',
branch: branch || '',
mainBundleSize: mainBundleSize,
totalBundleSize: totalBundleSize,
createTime: Date.now()
},
host: rdHost || '',
type: 2,
platform: 2
})];
case 1:
reportToRdRes = _d.sent();
return [4 /*yield*/, reportToRdPlatform({
data: {
projectId: rdProjectId,
projectName: repo || '',
subProjectName: subProject,
env: env || '',
branch: branch || '',
robot: robot,
lastCommit: lastCommit,
mainBundleSize: mainBundleSize,
totalBundleSize: totalBundleSize,
bkBuildUrl: bkBuildUrl || '',
time: Date.now(),
isWx: true
},
host: rdHost || '',
type: 4
})["catch"](function (err) {
console.log('[reportToRdRecordRes] err', err);
})];
case 2:
_d.sent();
console.log('[reportToRdRes]', reportToRdRes);
return [2 /*return*/];
}
});
});
}
function mpUploadAndReport(_a) {
var branch = _a.branch,
env = _a.env,
root = _a.root,
rainbowConfigKey = _a.rainbowConfigKey,
rainbowAppId = _a.rainbowAppId,
rainbowEnvName = _a.rainbowEnvName,
rainbowGroupName = _a.rainbowGroupName,
rdHost = _a.rdHost,
bkStartType = _a.bkStartType,
bkBuildUrl = _a.bkBuildUrl,
bkStartUserName = _a.bkStartUserName,
bkPipelineId = _a.bkPipelineId,
commitInfo = _a.commitInfo,
version = _a.version,
buildDesc = _a.buildDesc;
return __awaiter(this, void 0, void 0, function () {
var rainbowSecretInfo, config, robot, appName, appId, webhookUrl, chatId, cosInfo, rdProjectId, subProject, ciConfig, mpCISetting, ci, _b, ciCommitInfo, bundleInfo, err_1;
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
rainbowSecretInfo = {
appId: rainbowAppId,
envName: rainbowEnvName,
groupName: rainbowGroupName
};
return [4 /*yield*/, getCIConfig(rainbowConfigKey, rainbowSecretInfo)];
case 1:
config = _c.sent();
console.log('[CI] config: ', config);
robot = getRobot({
config: config,
branch: branch,
env: env
});
appName = config.appName, appId = config.appId, webhookUrl = config.webhookUrl, chatId = config.chatId, cosInfo = config.cosInfo, rdProjectId = config.rdProjectId, subProject = config.subProject, ciConfig = config.ci, mpCISetting = config.mpCISetting;
ci = new MpCI({
appName: appName,
appId: appId,
root: root,
env: env,
robotNumber: robot,
webhookUrl: webhookUrl,
chatId: chatId,
cosInfo: cosInfo,
errorLink: bkBuildUrl,
commitInfo: commitInfo,
version: version,
buildDesc: buildDesc,
buildSetting: mpCISetting || {}
});
return [4 /*yield*/, ci.uploadAndPreview()];
case 2:
_c.sent();
_b = ci.commitInfo, ciCommitInfo = _b === void 0 ? {} : _b;
bundleInfo = flattenSubPackages(ci.previewResult || {});
_c.label = 3;
case 3:
_c.trys.push([3, 5,, 6]);
return [4 /*yield*/, reportToRd({
bundleInfo: bundleInfo,
rdProjectId: rdProjectId,
subProject: subProject,
robot: robot,
lastCommit: "".concat(ciCommitInfo.author, " - ").concat(ciCommitInfo.message, " - ").concat(ciCommitInfo.hash),
repo: ciConfig.repo || '',
env: env,
branch: branch,
rdHost: rdHost,
bkStartUserName: bkStartUserName,
bkStartType: bkStartType,
bkBuildUrl: bkBuildUrl,
bkPipelineId: bkPipelineId
})];
case 4:
_c.sent();
return [3 /*break*/, 6];
case 5:
err_1 = _c.sent();
console.log('[reportToRd] err: ', err_1);
return [3 /*break*/, 6];
case 6:
if (!(bkStartType !== 'TIME_TRIGGER')) return [3 /*break*/, 8];
return [4 /*yield*/, ci.sendRobotMsg()];
case 7:
_c.sent();
_c.label = 8;
case 8:
return [2 /*return*/];
}
});
});
}
function mpUploadAndReportByOptions(options) {
return __awaiter(this, void 0, void 0, function () {
var branch, env, root, rainbowConfigKey, rainbowAppId, rainbowEnvName, rainbowGroupName, rdHost, bkStartType, bkBuildUrl, bkStartUserName, bkPipelineId, commitAuthor, commitMessage, commitHash, mpVersion;
return __generator(this, function (_a) {
console.log('[options] ', options);
branch = options.branch, env = options.env, root = options.root, rainbowConfigKey = options.configKey, rainbowAppId = options.appid, rainbowEnvName = options.envName, rainbowGroupName = options.groupName, rdHost = options.rdHost, bkStartType = options.bkStartType, bkBuildUrl = options.bkBuildUrl, bkStartUserName = options.bkStartUserName, bkPipelineId = options.bkPipelineId, commitAuthor = options.commitAuthor, commitMessage = options.commitMessage, commitHash = options.commitHash, mpVersion = options.mpVersion;
if (!branch || !env || !root || !rainbowConfigKey || !rainbowAppId || !rainbowEnvName || !rainbowGroupName || !rdHost || !bkStartType || !bkBuildUrl || !bkStartUserName || !bkPipelineId || !commitAuthor || !commitMessage || !commitHash || !mpVersion) {
console.error('缺少必要参数,请检查!');
return [2 /*return*/];
}
mpUploadAndReport({
branch: branch,
env: env,
root: root,
rainbowConfigKey: rainbowConfigKey,
rainbowAppId: rainbowAppId,
rainbowEnvName: rainbowEnvName,
rainbowGroupName: rainbowGroupName,
rdHost: rdHost,
bkStartType: bkStartType,
bkBuildUrl: bkBuildUrl,
bkStartUserName: bkStartUserName,
bkPipelineId: bkPipelineId,
commitInfo: {
author: commitAuthor,
message: commitMessage,
hash: commitHash,
branch: branch
},
buildDesc: getInnerBundleBuildDesc({
env: env,
branch: branch,
author: commitAuthor,
message: commitMessage
}),
version: mpVersion
});
return [2 /*return*/];
});
});
}
export { mpUploadAndReport, mpUploadAndReportByOptions };