diff --git a/.github/workflows/test-tdesign-icons.yaml b/.github/workflows/test-tdesign-icons.yaml index a21ce15..b0527ff 100644 --- a/.github/workflows/test-tdesign-icons.yaml +++ b/.github/workflows/test-tdesign-icons.yaml @@ -21,7 +21,7 @@ jobs: trigger: /pr-vue-next pr-vue: - # if: contains(github.event.pull_request.labels.*.name, 'icons:/pr-vue') || contains(github.event.pull_request.labels.*.name, 'test-tdesign-icons') + if: contains(github.event.pull_request.labels.*.name, 'icons:/pr-vue') || contains(github.event.pull_request.labels.*.name, 'test-tdesign-icons') runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 diff --git a/dist/index.js b/dist/index.js index cf7e40e..1202d78 100644 --- a/dist/index.js +++ b/dist/index.js @@ -29929,8 +29929,8 @@ exports.run = run; const node_process_1 = __importDefault(__nccwpck_require__(1708)); const core_1 = __nccwpck_require__(9999); const github_1 = __nccwpck_require__(2819); -const trigger_1 = __importDefault(__nccwpck_require__(9224)); const utils_1 = __nccwpck_require__(6236); +const trigger_1 = __importDefault(__nccwpck_require__(6671)); function run() { return __awaiter(this, void 0, void 0, function* () { var _a; @@ -29938,14 +29938,18 @@ function run() { const owner = (0, core_1.getInput)('owner') || github_1.context.repo.owner; const pr_number = (0, core_1.getInput)('pr_number') || github_1.context.issue.number; const token = node_process_1.default.env.GITHUB_TOKEN || (0, core_1.getInput)('token'); - const comment = (0, core_1.getInput)('comment') || ((_a = github_1.context.payload.comment) === null || _a === void 0 ? void 0 : _a.body) || ''; + const trigger = (0, core_1.getInput)('trigger') || ((_a = github_1.context.payload.comment) === null || _a === void 0 ? void 0 : _a.body) || ''; + if (github_1.context.eventName === 'issue_comment' && github_1.context.payload.pull_request) { + (0, core_1.info)('pr comment trigger'); + // TODO 需要白名单的人才能触发 + } yield (0, utils_1.setGitConfig)(); (0, trigger_1.default)({ owner, repo, pr_number: pr_number, token, - comment, + trigger, }); // info('comment', comment) // const repo_url = `https://${token}@github.com/liweijie0812/tdesign-vue-next.git` @@ -29979,6 +29983,59 @@ function run() { run().catch(console.error); +/***/ }), + +/***/ 5327: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports["default"] = start; +const core_1 = __nccwpck_require__(9999); +const utils_1 = __nccwpck_require__(6236); +const git_1 = __importDefault(__nccwpck_require__(8511)); +const github_1 = __importDefault(__nccwpck_require__(9764)); +const trigger_1 = __nccwpck_require__(6671); +function start(context) { + return __awaiter(this, void 0, void 0, function* () { + const prData = yield (0, utils_1.getPrData)(context.owner, context.repo, context.pr_number, context.token); + const body = (0, utils_1.addContributor)(prData.body || '', prData.user.login); + const { cloneRepo, initSubmodule, updateSubmodule, createBranch, isNeedCommit, gitCommit, gitPush } = (0, git_1.default)({ + repo: trigger_1.repoMap[context.trigger], + owner: trigger_1.ownerMap[context.trigger], + token: context.token, + }); + yield cloneRepo(); + yield initSubmodule(); + yield updateSubmodule(); + const branchName = `chore/update-common/pr/${context.pr_number}`; + yield createBranch(branchName); + const title = `chore(submodule): update common`; + if (!(yield isNeedCommit())) { + (0, core_1.info)('nothing to commit'); + return true; // nothing to commit + } + yield gitCommit(title); + yield gitPush(branchName); + const { createPR } = (0, github_1.default)({ repo: trigger_1.repoMap[context.trigger], owner: trigger_1.ownerMap[context.trigger], token: context.token }); + yield createPR(title, branchName, body); + }); +} + + /***/ }), /***/ 8862: @@ -30002,7 +30059,7 @@ exports["default"] = start; const core_1 = __nccwpck_require__(9999); const exec_1 = __nccwpck_require__(8872); const utils_1 = __nccwpck_require__(6236); -const trigger_1 = __nccwpck_require__(9224); +const trigger_1 = __nccwpck_require__(6671); exports.CND_ICONFONT_VERSION_REG = /https:\/\/tdesign\.gtimg\.com\/icon\/(\d+\.\d+\.\d+)\/fonts\/index\.css/; function getCdnIconfontVersion() { return __awaiter(this, void 0, void 0, function* () { @@ -30026,7 +30083,7 @@ function start(context) { (0, core_1.startGroup)('body'); (0, core_1.info)(`${body}`); (0, core_1.endGroup)(); - const packageName = trigger_1.iconsMap[context.comment]; + const packageName = trigger_1.iconsMap[context.trigger]; (0, core_1.startGroup)(packageName); let latestVersion = ''; if (packageName === 'cdn-iconfont') { @@ -30037,18 +30094,19 @@ function start(context) { } (0, core_1.info)(`latestVersion: ${latestVersion}`); (0, core_1.endGroup)(); - yield (0, utils_1.cloneRepo)(trigger_1.ownerMap[context.comment], trigger_1.repoMap[context.comment], context.token); - const branchName = yield (0, utils_1.createBranch)(trigger_1.repoMap[context.comment], `chore/update-${packageName}/${latestVersion}`); - yield (0, utils_1.bumpIconsVersion)(trigger_1.repoMap[context.comment]); + yield (0, utils_1.cloneRepo)(trigger_1.ownerMap[context.trigger], trigger_1.repoMap[context.trigger], context.token); + const branchName = `chore/update-${packageName}/${latestVersion}`; + yield (0, utils_1.createBranch)(trigger_1.repoMap[context.trigger], branchName); + yield (0, utils_1.bumpIconsVersion)(trigger_1.repoMap[context.trigger]); if (packageName === 'cdn-iconfont') { - yield miniprogramUpdateIcons(trigger_1.repoMap[context.comment], latestVersion); + yield miniprogramUpdateIcons(trigger_1.repoMap[context.trigger], latestVersion); } - yield (0, utils_1.gitCommit)(trigger_1.repoMap[context.comment], `chore: update ${packageName} to ${latestVersion}`); - yield (0, utils_1.gitPush)(trigger_1.repoMap[context.comment], branchName); + yield (0, utils_1.gitCommit)(trigger_1.repoMap[context.trigger], `chore: update ${packageName} to ${latestVersion}`); + yield (0, utils_1.gitPush)(trigger_1.repoMap[context.trigger], branchName); const title = `feat(Icon): ${packageName} update to ${latestVersion}`; const prContext = { - owner: trigger_1.ownerMap[context.comment], - repo: trigger_1.repoMap[context.comment], + owner: trigger_1.ownerMap[context.trigger], + repo: trigger_1.repoMap[context.trigger], title, head: branchName, body, @@ -30061,56 +30119,6 @@ function start(context) { ; -/***/ }), - -/***/ 9224: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ownerMap = exports.repoMap = exports.iconsMap = void 0; -exports["default"] = useTrigger; -const icons_1 = __importDefault(__nccwpck_require__(8862)); -exports.iconsMap = { - '/pr-vue': 'tdesign-icons-vue', - '/pr-vue-next': 'tdesign-icons-vue-next', - '/pr-react': 'tdesign-icons-react', - '/pr-mobile-vue': 'tdesign-icons-vue-next', - '/pr-mobile-react': 'tdesign-icons-react', - '/pr-miniprogram': 'cdn-iconfont', -}; -exports.repoMap = { - '/pr-vue': 'tdesign-vue', - '/pr-vue-next': 'tdesign-vue-next', - '/pr-react': 'tdesign-react', - '/pr-mobile-vue': 'tdesign-mobile-vue', - '/pr-mobile-react': 'tdesign-mobile-react', - '/pr-miniprogram': 'tdesign-miniprogram', -}; -exports.ownerMap = { - '/pr-vue': 'Tencent', - '/pr-vue-next': 'Tencent', - '/pr-react': 'Tencent', - '/pr-mobile-vue': 'Tencent', - '/pr-mobile-react': 'Tencent', - '/pr-miniprogram': 'Tencent', -}; -function useTrigger(context) { - // TODO - switch (context.repo) { - case 'tdesign-icons': - (0, icons_1.default)(context); - break; - default: - throw new Error(`不支持的仓库: ${context.repo}`); - } -} - - /***/ }), /***/ 6236: @@ -30236,6 +30244,179 @@ function gitPush(repo, branch) { } +/***/ }), + +/***/ 8511: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports["default"] = useGit; +const exec_1 = __nccwpck_require__(8872); +function useGit(context) { + function cloneRepo() { + return __awaiter(this, void 0, void 0, function* () { + const repo_url = `https://${context.token}@github.com/${context.owner}/${context.repo}.git`; + yield (0, exec_1.exec)('git', ['clone', repo_url, `../${context.repo}`]); + }); + } + function createBranch(branch) { + return __awaiter(this, void 0, void 0, function* () { + yield (0, exec_1.exec)('git', ['checkout', '-b', branch], { cwd: `../${context.repo}` }); + }); + } + function gitCommit(message) { + return __awaiter(this, void 0, void 0, function* () { + yield (0, exec_1.exec)(`git commit -am "${message}" --no-verify`, [], { cwd: `../${context.repo}` }); + }); + } + function gitPush(branch) { + return __awaiter(this, void 0, void 0, function* () { + yield (0, exec_1.exec)(`git push origin ${branch}`, [], { cwd: `../${context.repo}` }); + }); + } + function initSubmodule() { + return __awaiter(this, void 0, void 0, function* () { + yield (0, exec_1.exec)('git', ['submodule', 'update', '--init', '--recursive'], { cwd: `../${context.repo}` }); + }); + } + function updateSubmodule() { + return __awaiter(this, void 0, void 0, function* () { + yield (0, exec_1.exec)('git', ['submodule', 'update', '--remote'], { cwd: `../${context.repo}` }); + }); + } + function isNeedCommit() { + return __awaiter(this, void 0, void 0, function* () { + const { stdout } = yield (0, exec_1.getExecOutput)('git', ['status'], { cwd: `../${context.repo}` }); + return !stdout.includes('nothing to commit, working tree clean'); + }); + } + return { + cloneRepo, + createBranch, + gitCommit, + gitPush, + initSubmodule, + updateSubmodule, + isNeedCommit, + }; +} + + +/***/ }), + +/***/ 9764: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports["default"] = useGithub; +const github_1 = __nccwpck_require__(2819); +function useGithub(context) { + const octokit = (0, github_1.getOctokit)(context.token); + function getPrData(pr_number) { + return __awaiter(this, void 0, void 0, function* () { + const { data: pr_data } = yield octokit.rest.pulls.get({ + owner: context.owner, + repo: context.repo, + pull_number: pr_number, + }); + return pr_data; + }); + } + function createPR(title, head, body, base) { + return __awaiter(this, void 0, void 0, function* () { + yield octokit.rest.pulls.create({ + owner: context.owner, + repo: context.repo, + title, + head, + base: base || 'develop', + body, + }); + }); + } + return { + getPrData, + createPR, + }; +} + + +/***/ }), + +/***/ 6671: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ownerMap = exports.repoMap = exports.iconsMap = void 0; +exports["default"] = useTrigger; +const common_1 = __importDefault(__nccwpck_require__(5327)); +const icons_1 = __importDefault(__nccwpck_require__(8862)); +exports.iconsMap = { + '/pr-vue': 'tdesign-icons-vue', + '/pr-vue-next': 'tdesign-icons-vue-next', + '/pr-react': 'tdesign-icons-react', + '/pr-mobile-vue': 'tdesign-icons-vue-next', + '/pr-mobile-react': 'tdesign-icons-react', + '/pr-miniprogram': 'cdn-iconfont', +}; +exports.repoMap = { + '/pr-vue': 'tdesign-vue', + '/pr-vue-next': 'tdesign-vue-next', + '/pr-react': 'tdesign-react', + '/pr-mobile-vue': 'tdesign-mobile-vue', + '/pr-mobile-react': 'tdesign-mobile-react', + '/pr-miniprogram': 'tdesign-miniprogram', +}; +exports.ownerMap = { + '/pr-vue': 'Tencent', + '/pr-vue-next': 'Tencent', + '/pr-react': 'Tencent', + '/pr-mobile-vue': 'Tencent', + '/pr-mobile-react': 'Tencent', + '/pr-miniprogram': 'Tencent', +}; +function useTrigger(context) { + // TODO + switch (context.repo) { + case 'tdesign-icons': + (0, icons_1.default)(context); + break; + case 'tdesign-common': + (0, common_1.default)(context); + break; + default: + throw new Error(`不支持的仓库: ${context.repo}`); + } +} + + /***/ }), /***/ 2613: