t-comm
Version:
专业、稳定、纯粹的工具库
252 lines (247 loc) • 9.78 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var tslib_es6 = require('../tslib.es6-01322ba9.js');
var rdPlatformReport_rdPlatformReport = require('../rd-platform-report/rd-platform-report.js');
var mpCi_helper = require('./helper.js');
var mpCi_mpCi = require('./mp-ci.js');
var mpCi_writeEnvAndPrivateKey = require('./write-env-and-private-key.js');
require('axios');
require('../bite/format-bite.js');
require('../git/git.js');
require('../node/node-command.js');
require('@babel/runtime/helpers/typeof');
require('../wecom-robot/message.js');
require('./config.js');
require('fs');
require('path');
require('../canvas/img-text.js');
require('../canvas/get-canvas.js');
require('../node-img/img.js');
require('../tencent-cloud/cos/cos.js');
require('../tencent-cloud/cos/helper.js');
require('../tencent-cloud/cos/link.js');
require('../time/time.js');
require('../wecom-robot/base.js');
require('../wecom-robot/helper.js');
require('../fs/fs.js');
require('../rainbow/rainbow-user.js');
require('../rainbow/helper/helper.js');
require('../rainbow/sdk.js');
require('../json/json-parse.js');
require('../list/flat.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 tslib_es6.__awaiter(this, void 0, void 0, function () {
var mainBundleSize, totalBundleSize, reportToRdRes;
return tslib_es6.__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*/, rdPlatformReport_rdPlatformReport.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*/, rdPlatformReport_rdPlatformReport.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 tslib_es6.__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 tslib_es6.__generator(this, function (_c) {
switch (_c.label) {
case 0:
rainbowSecretInfo = {
appId: rainbowAppId,
envName: rainbowEnvName,
groupName: rainbowGroupName
};
return [4 /*yield*/, mpCi_writeEnvAndPrivateKey.getCIConfig(rainbowConfigKey, rainbowSecretInfo)];
case 1:
config = _c.sent();
console.log('[CI] config: ', config);
robot = mpCi_writeEnvAndPrivateKey.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_mpCi.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 tslib_es6.__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 tslib_es6.__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: mpCi_helper.getInnerBundleBuildDesc({
env: env,
branch: branch,
author: commitAuthor,
message: commitMessage
}),
version: mpVersion
});
return [2 /*return*/];
});
});
}
exports.mpUploadAndReport = mpUploadAndReport;
exports.mpUploadAndReportByOptions = mpUploadAndReportByOptions;