From 0fa329df6859b9fb7faa4cbe678df75fd74ac416 Mon Sep 17 00:00:00 2001 From: ajaxzheng <894103554@qq.com> Date: Mon, 13 Jan 2025 21:52:40 +0800 Subject: [PATCH 1/3] fix: fix alpha publish error --- .github/workflows/dispatch-renderless-theme-publish-alpha.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/dispatch-renderless-theme-publish-alpha.yml b/.github/workflows/dispatch-renderless-theme-publish-alpha.yml index b88b82d679..964e527839 100644 --- a/.github/workflows/dispatch-renderless-theme-publish-alpha.yml +++ b/.github/workflows/dispatch-renderless-theme-publish-alpha.yml @@ -30,10 +30,6 @@ jobs: throw new Error('请输入正确的包名称') } - if (!branchName.includes('release-3.')) { - throw new Error('请使用release-3.xx.xx分支发布正式包') - } - - name: CheckOut Code uses: actions/checkout@master with: From 3124f87148e60c085fc4c15e3055ad6796b658aa Mon Sep 17 00:00:00 2001 From: ajaxzheng <894103554@qq.com> Date: Tue, 14 Jan 2025 18:36:18 +0800 Subject: [PATCH 2/3] ci(workflows): added automatic upgrade function for external test packages --- ...ispatch-renderless-theme-publish-alpha.yml | 2 +- .../workflows/dispatch-ui-publish-alpha.yml | 13 +------ .../cli/src/commands/release/releaseAlpha.ts | 36 +++++++++++++++---- internals/cli/src/index.ts | 6 +++- 4 files changed, 37 insertions(+), 20 deletions(-) diff --git a/.github/workflows/dispatch-renderless-theme-publish-alpha.yml b/.github/workflows/dispatch-renderless-theme-publish-alpha.yml index 964e527839..b4b2369a7d 100644 --- a/.github/workflows/dispatch-renderless-theme-publish-alpha.yml +++ b/.github/workflows/dispatch-renderless-theme-publish-alpha.yml @@ -81,7 +81,7 @@ jobs: run: pnpm build:runtime - name: Run Release alpha - run: pnpm release:alpha + run: pnpm release:alpha -u - name: Publish run: | diff --git a/.github/workflows/dispatch-ui-publish-alpha.yml b/.github/workflows/dispatch-ui-publish-alpha.yml index f38490ba17..aab01eea67 100644 --- a/.github/workflows/dispatch-ui-publish-alpha.yml +++ b/.github/workflows/dispatch-ui-publish-alpha.yml @@ -18,17 +18,6 @@ jobs: build: runs-on: windows-latest steps: - - name: Parse Components - id: parseComponents - uses: actions/github-script@v6 - with: - script: | - const branchName = `${{ github.ref_name }}` - - if (!branchName.includes('release-3.')) { - throw new Error('请使用release-3.xx.xx分支发布正式包') - } - - name: CheckOut Code uses: actions/checkout@master with: @@ -63,7 +52,7 @@ jobs: run: pnpm build:ui ${{ inputs.components }} - name: Run Release alpha - run: pnpm release:alpha + run: pnpm release:alpha -u - name: Publish run: | diff --git a/internals/cli/src/commands/release/releaseAlpha.ts b/internals/cli/src/commands/release/releaseAlpha.ts index 671fd1d8e7..cd5d5b5cbc 100644 --- a/internals/cli/src/commands/release/releaseAlpha.ts +++ b/internals/cli/src/commands/release/releaseAlpha.ts @@ -1,11 +1,29 @@ import { pathFromPackages } from '../build/build-ui' import path from 'node:path' import fs from 'fs-extra' +import semver from 'semver' +import { execSync } from 'node:child_process' const excludeFiles = ['.png', '.gif', '.jpeg', '.jpg', '.ttf', 'node_modules'] +/** + * @param {string} packageName 包名 + * @param {string} packageName 包名 + * @returns {string} 自动升级patch版本后的版本号 + */ +const getPatchVersion = (packageName: string, version: string): string => { + try { + // 防止测试仓库没有发布过该包,导致获取不到版本号 + const npmVersion = execSync(`npm v ${packageName} version`).toString('utf-8').replace(/\n/, '') + const updateVersion = version.startsWith('2.') ? `2${npmVersion.slice(1)}` : npmVersion + return semver.inc(updateVersion, 'patch') + } catch (error) { + return version + } +} + // 递归遍历所有的组件,然后依次修改文件内容 -const findAllpage = (packagesPath) => { +const findAllpage = (packagesPath, updateVersion) => { if (excludeFiles.some((item) => packagesPath.includes(item)) || !fs.existsSync(packagesPath)) { return } @@ -13,19 +31,25 @@ const findAllpage = (packagesPath) => { if (fs.statSync(packagesPath).isDirectory()) { // 循环递归查找子文件夹 fs.readdirSync(packagesPath).forEach((childPatch) => { - findAllpage(path.join(packagesPath, childPatch)) + findAllpage(path.join(packagesPath, childPatch), updateVersion) }) } else { const content = fs.readFileSync(packagesPath).toString('UTF-8' as BufferEncoding) - let result = content.replace(/@opentiny\/vue/g, '@opentinyvue/vue') + const result = content.replace(/@opentiny\/vue/g, '@opentinyvue/vue') - fs.writeFileSync(packagesPath, result) + if (packagesPath.endsWith('package.json') && updateVersion) { + const packageJSON = JSON.parse(result) + packageJSON.version = getPatchVersion(packageJSON.name, packageJSON.version) + fs.writeFileSync(packagesPath, JSON.stringify(packageJSON, null, 2) + '\n') + } else { + fs.writeFileSync(packagesPath, result) + } } } -export const releaseAlpha = () => { +export const releaseAlpha = ({ updateVersion }) => { const distLists = ['dist3/', 'dist2/', 'renderless/dist', 'theme/dist', 'theme-mobile/dist', 'theme-saas/dist'] distLists.forEach((item) => { - findAllpage(pathFromPackages(item)) + findAllpage(pathFromPackages(item), updateVersion) }) } diff --git a/internals/cli/src/index.ts b/internals/cli/src/index.ts index 1ff28b04d3..a45c7f7a0f 100644 --- a/internals/cli/src/index.ts +++ b/internals/cli/src/index.ts @@ -9,7 +9,11 @@ const program = new Command() program.command('release:aurora').description('转换为aurora的包').action(releaseAurora) -program.command('release:alpha').description('转换为组织名为@opentinyvue的包').action(releaseAlpha) +program + .command('release:alpha') + .description('转换为组织名为@opentinyvue的包') + .option('-u, --updateVersion', '是否自动升级patch版本号', false) + .action(releaseAlpha) program.command('create:icon-saas').description('同步生成 icon-saas').action(createIconSaas) From 1ed91e2c69519ac306134627321659867ca6111b Mon Sep 17 00:00:00 2001 From: ajaxzheng <894103554@qq.com> Date: Tue, 14 Jan 2025 18:40:21 +0800 Subject: [PATCH 3/3] ci(workflows): added automatic upgrade function for external test packages --- internals/cli/src/commands/release/releaseAlpha.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internals/cli/src/commands/release/releaseAlpha.ts b/internals/cli/src/commands/release/releaseAlpha.ts index cd5d5b5cbc..91d650c764 100644 --- a/internals/cli/src/commands/release/releaseAlpha.ts +++ b/internals/cli/src/commands/release/releaseAlpha.ts @@ -8,7 +8,7 @@ const excludeFiles = ['.png', '.gif', '.jpeg', '.jpg', '.ttf', 'node_modules'] /** * @param {string} packageName 包名 - * @param {string} packageName 包名 + * @param {string} version 原始版本号 * @returns {string} 自动升级patch版本后的版本号 */ const getPatchVersion = (packageName: string, version: string): string => {