t-comm
Version:
专业、稳定、纯粹的工具库
287 lines (280 loc) • 11.6 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var _regeneratorRuntime = require('@babel/runtime/regenerator');
var tslib_es6 = require('../tslib.es6-0d92ef81.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('../nodejs/child_process.js');
require('../nodejs/fs.js');
require('../nodejs/path.js');
require('../validate/validate.js');
require('../wecom-robot/message.js');
require('./config.js');
require('@babel/runtime/helpers/toConsumableArray');
require('@babel/runtime/helpers/classCallCheck');
require('@babel/runtime/helpers/createClass');
require('../canvas/img-text.js');
require('../third-party/image-size.js');
require('../canvas/get-canvas.js');
require('../third-party/canvas.js');
require('../node-img/img.js');
require('../nodejs/crypto.js');
require('../nodejs/request.js');
require('../tencent-cloud/cos/cos.js');
require('../tencent-cloud/cos/helper.js');
require('../third-party/cos-nodejs-sdk-v5.js');
require('../tencent-cloud/cos/link.js');
require('../third-party/miniprogram-ci.js');
require('../time/time.js');
require('../wecom-robot/base.js');
require('../wecom-robot/helper.js');
require('../fs/fs.js');
require('../nodejs/os.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 _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
function flattenSubPackages(result) {
var _result$subPackageInf = result.subPackageInfo,
subPackageInfo = _result$subPackageInf === void 0 ? [] : _result$subPackageInf;
return subPackageInfo.reduce(function (acc, item) {
acc[item.name] = item;
return acc;
}, {});
}
function reportToRd(_ref) {
var bundleInfo = _ref.bundleInfo,
rdProjectId = _ref.rdProjectId,
subProject = _ref.subProject,
robot = _ref.robot,
lastCommit = _ref.lastCommit,
repo = _ref.repo,
env = _ref.env,
branch = _ref.branch,
rdHost = _ref.rdHost,
bkStartUserName = _ref.bkStartUserName,
bkStartType = _ref.bkStartType,
bkBuildUrl = _ref.bkBuildUrl,
bkPipelineId = _ref.bkPipelineId;
var _a, _b;
return tslib_es6.__awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee() {
var mainBundleSize, totalBundleSize, reportToRdRes;
return _regeneratorRuntime__default["default"].wrap(function (_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
if (bundleInfo === null || bundleInfo === void 0 ? void 0 : bundleInfo.__APP__) {
_context.next = 1;
break;
}
return _context.abrupt("return");
case 1:
mainBundleSize = parseInt("".concat((((_a = bundleInfo.__APP__) === null || _a === void 0 ? void 0 : _a.size) || 0) / 1024), 10);
totalBundleSize = parseInt("".concat((((_b = bundleInfo.__FULL__) === null || _b === void 0 ? void 0 : _b.size) || 0) / 1024), 10);
_context.next = 2;
return 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 2:
reportToRdRes = _context.sent;
_context.next = 3;
return 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 3:
console.log('[reportToRdRes]', reportToRdRes);
case 4:
case "end":
return _context.stop();
}
}, _callee);
}));
}
function mpUploadAndReport(_ref2) {
var branch = _ref2.branch,
env = _ref2.env,
root = _ref2.root,
rainbowConfigKey = _ref2.rainbowConfigKey,
rainbowAppId = _ref2.rainbowAppId,
rainbowEnvName = _ref2.rainbowEnvName,
rainbowGroupName = _ref2.rainbowGroupName,
rdHost = _ref2.rdHost,
bkStartType = _ref2.bkStartType,
bkBuildUrl = _ref2.bkBuildUrl,
bkStartUserName = _ref2.bkStartUserName,
bkPipelineId = _ref2.bkPipelineId,
commitInfo = _ref2.commitInfo,
version = _ref2.version,
buildDesc = _ref2.buildDesc;
return tslib_es6.__awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2() {
var rainbowSecretInfo, config, robot, appName, appId, webhookUrl, chatId, cosInfo, rdProjectId, subProject, ciConfig, mpCISetting, ci, _ci$commitInfo, ciCommitInfo, bundleInfo, _t;
return _regeneratorRuntime__default["default"].wrap(function (_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
rainbowSecretInfo = {
appId: rainbowAppId,
envName: rainbowEnvName,
groupName: rainbowGroupName
};
_context2.next = 1;
return mpCi_writeEnvAndPrivateKey.getCIConfig(rainbowConfigKey, rainbowSecretInfo);
case 1:
config = _context2.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 || {}
});
_context2.next = 2;
return ci.uploadAndPreview();
case 2:
_ci$commitInfo = ci.commitInfo, ciCommitInfo = _ci$commitInfo === void 0 ? {} : _ci$commitInfo;
bundleInfo = flattenSubPackages(ci.previewResult || {});
_context2.prev = 3;
_context2.next = 4;
return 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:
_context2.next = 6;
break;
case 5:
_context2.prev = 5;
_t = _context2["catch"](3);
console.log('[reportToRd] err: ', _t);
case 6:
if (!(bkStartType !== 'TIME_TRIGGER')) {
_context2.next = 7;
break;
}
_context2.next = 7;
return ci.sendRobotMsg();
case 7:
case "end":
return _context2.stop();
}
}, _callee2, null, [[3, 5]]);
}));
}
function mpUploadAndReportByOptions(options) {
return tslib_es6.__awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee3() {
var branch, env, root, rainbowConfigKey, rainbowAppId, rainbowEnvName, rainbowGroupName, rdHost, bkStartType, bkBuildUrl, bkStartUserName, bkPipelineId, commitAuthor, commitMessage, commitHash, mpVersion;
return _regeneratorRuntime__default["default"].wrap(function (_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
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)) {
_context3.next = 1;
break;
}
console.error('缺少必要参数,请检查!');
return _context3.abrupt("return");
case 1:
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
});
case 2:
case "end":
return _context3.stop();
}
}, _callee3);
}));
}
exports.mpUploadAndReport = mpUploadAndReport;
exports.mpUploadAndReportByOptions = mpUploadAndReportByOptions;