UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

243 lines (240 loc) 9.3 kB
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 };