ci: release4.0.0

This commit is contained in:
winixt 2026-04-28 21:27:44 +08:00
parent 3786b56ec5
commit ed5d4edadd
21 changed files with 72 additions and 33 deletions

2
.npmrc
View File

@ -1,3 +1,5 @@
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
registry=https://registry.npmmirror.com registry=https://registry.npmmirror.com
link-workspace-packages=true link-workspace-packages=true
prefer-workspace-packages=true prefer-workspace-packages=true

View File

@ -34,7 +34,7 @@
"core-js": "^3.45.1" "core-js": "^3.45.1"
}, },
"dependencies": { "dependencies": {
"@fesjs/shared": "^4.0.0-beta.1", "@fesjs/shared": "^4.0.0",
"@fesjs/utils": "^4.0.0", "@fesjs/utils": "^4.0.0",
"@vitejs/plugin-basic-ssl": "^2.3.0", "@vitejs/plugin-basic-ssl": "^2.3.0",
"@vitejs/plugin-legacy": "^8.0.1", "@vitejs/plugin-legacy": "^8.0.1",

View File

@ -42,7 +42,7 @@
"@babel/plugin-transform-runtime": "^7.28.3", "@babel/plugin-transform-runtime": "^7.28.3",
"@babel/preset-env": "^7.28.3", "@babel/preset-env": "^7.28.3",
"@babel/preset-typescript": "^7.27.1", "@babel/preset-typescript": "^7.27.1",
"@fesjs/shared": "^4.0.0-beta.1", "@fesjs/shared": "^4.0.0",
"@fesjs/utils": "^4.0.0", "@fesjs/utils": "^4.0.0",
"@vue/babel-plugin-jsx": "^2.0.1", "@vue/babel-plugin-jsx": "^2.0.1",
"ajv": "^8.12.0", "ajv": "^8.12.0",

View File

@ -35,7 +35,7 @@
"vue-router": "^4.5.1" "vue-router": "^4.5.1"
}, },
"dependencies": { "dependencies": {
"@fesjs/shared": "^4.0.0-beta.1", "@fesjs/shared": "^4.0.0",
"@fesjs/utils": "^4.0.0", "@fesjs/utils": "^4.0.0",
"es-toolkit": "^1.46.0" "es-toolkit": "^1.46.0"
}, },

View File

@ -1,6 +1,6 @@
{ {
"name": "@fesjs/plugin-enums", "name": "@fesjs/plugin-enums",
"version": "4.0.0-beta.0", "version": "4.0.0",
"description": "@fesjs/plugin-enums", "description": "@fesjs/plugin-enums",
"author": "aringlai", "author": "aringlai",
"license": "MIT", "license": "MIT",
@ -30,11 +30,11 @@
"access": "public" "access": "public"
}, },
"peerDependencies": { "peerDependencies": {
"@fesjs/fes": "^4.0.0-beta.0", "@fesjs/fes": "^4.0.0",
"vue": "^3.5.21" "vue": "^3.5.21"
}, },
"dependencies": { "dependencies": {
"@fesjs/shared": "^4.0.0-beta.0" "@fesjs/shared": "4.0.1"
}, },
"typings": "./types.d.ts" "typings": "./types.d.ts"
} }

View File

@ -34,7 +34,7 @@
"vue": "^3.5.21" "vue": "^3.5.21"
}, },
"dependencies": { "dependencies": {
"@fesjs/shared": "^4.0.0-beta.1", "@fesjs/shared": "^4.0.0",
"glob": "^13.0.6", "glob": "^13.0.6",
"svgo": "^4.0.0" "svgo": "^4.0.0"
}, },

View File

@ -1,6 +1,6 @@
{ {
"name": "@fesjs/plugin-layout", "name": "@fesjs/plugin-layout",
"version": "6.0.0-beta.1", "version": "6.0.0",
"description": "@fesjs/plugin-layout", "description": "@fesjs/plugin-layout",
"author": "harrywan", "author": "harrywan",
"license": "MIT", "license": "MIT",
@ -36,7 +36,7 @@
"vue-router": "^4.5.1" "vue-router": "^4.5.1"
}, },
"dependencies": { "dependencies": {
"@fesjs/shared": "^4.0.0-beta.1", "@fesjs/shared": "^4.0.0",
"@fesjs/utils": "^4.0.0", "@fesjs/utils": "^4.0.0",
"dompurify": "^3.1.7" "dompurify": "^3.1.7"
}, },

View File

@ -35,7 +35,7 @@
"vue": "^3.5.21" "vue": "^3.5.21"
}, },
"dependencies": { "dependencies": {
"@fesjs/shared": "^4.0.0-beta.1", "@fesjs/shared": "^4.0.0",
"@fesjs/utils": "^4.0.0", "@fesjs/utils": "^4.0.0",
"glob": "^13.0.6", "glob": "^13.0.6",
"es-toolkit": "^1.46.0", "es-toolkit": "^1.46.0",

View File

@ -1,6 +1,6 @@
{ {
"name": "@fesjs/plugin-login", "name": "@fesjs/plugin-login",
"version": "4.0.0-beta.0", "version": "4.0.0",
"description": "@fesjs/plugin-login", "description": "@fesjs/plugin-login",
"author": "qlin", "author": "qlin",
"license": "MIT", "license": "MIT",
@ -30,12 +30,12 @@
"access": "public" "access": "public"
}, },
"peerDependencies": { "peerDependencies": {
"@fesjs/fes": "^4.0.0-beta.0", "@fesjs/fes": "^4.0.0",
"@fesjs/plugin-request": "^5.0.0-beta.0", "@fesjs/plugin-request": "^5.0.0",
"vue": "^3.5.21" "vue": "^3.5.21"
}, },
"dependencies": { "dependencies": {
"@fesjs/shared": "^4.0.0-beta.0" "@fesjs/shared": "4.0.1"
}, },
"typings": "./types.d.ts" "typings": "./types.d.ts"
} }

View File

@ -35,7 +35,7 @@
"vue": "^3.5.21" "vue": "^3.5.21"
}, },
"dependencies": { "dependencies": {
"@fesjs/shared": "^4.0.0-beta.1", "@fesjs/shared": "^4.0.0",
"@fesjs/utils": "^4.0.0", "@fesjs/utils": "^4.0.0",
"es-toolkit": "^1.46.0", "es-toolkit": "^1.46.0",
"glob": "^13.0.6" "glob": "^13.0.6"

View File

@ -34,7 +34,7 @@
"vue": "^3.5.21" "vue": "^3.5.21"
}, },
"dependencies": { "dependencies": {
"@fesjs/shared": "^4.0.0-beta.1", "@fesjs/shared": "^4.0.0",
"@fesjs/utils": "^4.0.0", "@fesjs/utils": "^4.0.0",
"es-toolkit": "^1.46.0", "es-toolkit": "^1.46.0",
"monaco-editor": "^0.36.1", "monaco-editor": "^0.36.1",

View File

@ -1,6 +1,6 @@
{ {
"name": "@fesjs/plugin-pinia", "name": "@fesjs/plugin-pinia",
"version": "4.0.0-beta.1", "version": "4.0.0",
"description": "@fesjs/plugin-pinia", "description": "@fesjs/plugin-pinia",
"author": "harrywan", "author": "harrywan",
"license": "MIT", "license": "MIT",
@ -35,7 +35,7 @@
"vue": "^3.5.21" "vue": "^3.5.21"
}, },
"dependencies": { "dependencies": {
"@fesjs/shared": "^4.0.0-beta.1", "@fesjs/shared": "^4.0.0",
"@fesjs/utils": "^4.0.0" "@fesjs/utils": "^4.0.0"
}, },
"typings": "./types.d.ts" "typings": "./types.d.ts"

View File

@ -40,7 +40,7 @@
"vue": "^3.5.21" "vue": "^3.5.21"
}, },
"dependencies": { "dependencies": {
"@fesjs/shared": "^4.0.0-beta.1", "@fesjs/shared": "^4.0.0",
"@fesjs/utils": "^4.0.0", "@fesjs/utils": "^4.0.0",
"address": "^1.1.2", "address": "^1.1.2",
"cheerio": "^1.0.0", "cheerio": "^1.0.0",

View File

@ -1,6 +1,6 @@
{ {
"name": "@fesjs/plugin-request", "name": "@fesjs/plugin-request",
"version": "5.0.0-beta.1", "version": "5.0.0",
"description": "@fesjs/plugin-request", "description": "@fesjs/plugin-request",
"author": "qlin", "author": "qlin",
"license": "MIT", "license": "MIT",
@ -34,7 +34,7 @@
"vue": "^3.2.37" "vue": "^3.2.37"
}, },
"dependencies": { "dependencies": {
"@fesjs/shared": "^4.0.0-beta.1", "@fesjs/shared": "^4.0.0",
"@fesjs/utils": "^4.0.0", "@fesjs/utils": "^4.0.0",
"@qlin/request": "^0.3.1" "@qlin/request": "^0.3.1"
}, },

View File

@ -1,6 +1,6 @@
{ {
"name": "@fesjs/plugin-sass", "name": "@fesjs/plugin-sass",
"version": "4.0.0-beta.0", "version": "4.0.0",
"description": "@fesjs/plugin-sass", "description": "@fesjs/plugin-sass",
"author": "harrywan", "author": "harrywan",
"license": "MIT", "license": "MIT",
@ -30,10 +30,10 @@
"access": "public" "access": "public"
}, },
"peerDependencies": { "peerDependencies": {
"@fesjs/fes": "^4.0.0-beta.0" "@fesjs/fes": "^4.0.0"
}, },
"dependencies": { "dependencies": {
"@fesjs/shared": "^4.0.0-beta.0", "@fesjs/shared": "4.0.1",
"sass": "^1.92.0", "sass": "^1.92.0",
"sass-loader": "^16.0.5" "sass-loader": "^16.0.5"
}, },

View File

@ -34,7 +34,7 @@
"@fesjs/fes": "^4.0.0" "@fesjs/fes": "^4.0.0"
}, },
"dependencies": { "dependencies": {
"@fesjs/shared": "^4.0.0-beta.1", "@fesjs/shared": "^4.0.0",
"@fesjs/utils": "^4.0.0", "@fesjs/utils": "^4.0.0",
"@swc/core": "1.13.5", "@swc/core": "1.13.5",
"@swc/css": "^0.0.28", "@swc/css": "^0.0.28",

View File

@ -34,7 +34,7 @@
"vue": "^3.5.21" "vue": "^3.5.21"
}, },
"dependencies": { "dependencies": {
"@fesjs/shared": "^4.0.0-beta.1", "@fesjs/shared": "^4.0.0",
"@fesjs/utils": "^4.0.0", "@fesjs/utils": "^4.0.0",
"es-toolkit": "^1.46.0" "es-toolkit": "^1.46.0"
}, },

View File

@ -35,8 +35,8 @@
}, },
"dependencies": { "dependencies": {
"@fesjs/compiler": "^4.0.0", "@fesjs/compiler": "^4.0.0",
"@fesjs/runtime": "^4.0.0-beta.0", "@fesjs/runtime": "^4.0.0",
"@fesjs/shared": "^4.0.0-beta.1", "@fesjs/shared": "^4.0.0",
"@fesjs/utils": "^4.0.0", "@fesjs/utils": "^4.0.0",
"@vue/compiler-sfc": "^3.5.33", "@vue/compiler-sfc": "^3.5.33",
"@wll8/better-mock": "0.3.3-alpha", "@wll8/better-mock": "0.3.3-alpha",

View File

@ -1,6 +1,6 @@
{ {
"name": "@fesjs/runtime", "name": "@fesjs/runtime",
"version": "4.0.0-beta.0", "version": "4.0.0",
"description": "@fesjs/runtime", "description": "@fesjs/runtime",
"author": "qlin", "author": "qlin",
"license": "MIT", "license": "MIT",

View File

@ -1,6 +1,6 @@
{ {
"name": "@fesjs/shared", "name": "@fesjs/shared",
"version": "4.0.0-beta.1", "version": "4.0.0",
"description": "@fesjs/shared", "description": "@fesjs/shared",
"author": "qlin", "author": "qlin",
"license": "MIT", "license": "MIT",

View File

@ -11,7 +11,7 @@ import { getPublicPkgs } from './shared.mjs';
const __dirname = url.fileURLToPath(new URL('.', import.meta.url)); const __dirname = url.fileURLToPath(new URL('.', import.meta.url));
const { preid: preId, dry: isDryRun } = minimist(process.argv.slice(2)); const { preid: preId, dry: isDryRun, force: isForce } = minimist(process.argv.slice(2));
const packages = getPublicPkgs(); const packages = getPublicPkgs();
@ -64,7 +64,7 @@ async function publishPackage(pkg, runIfNotDry) {
console.log('Successfully published :', pc.green(`${pkg.name}@${pkg.newVersion}`)); console.log('Successfully published :', pc.green(`${pkg.name}@${pkg.newVersion}`));
} }
catch (e) { catch (e) {
if (e.stderr.match(/previously published/)) { if (/previously published/.test(e.stderr)) {
console.log(pc.red(`Skipping already published: ${pkg.name}`)); console.log(pc.red(`Skipping already published: ${pkg.name}`));
} }
@ -177,7 +177,7 @@ async function genRootPackageVersion() {
} }
function genOtherPkgsVersion(packagesVersion) { function genOtherPkgsVersion(packagesVersion) {
const noChangedPkgs = packages.filter(name => !packagesVersion.find(item => item.dirName === name)); const noChangedPkgs = packages.filter(name => !packagesVersion.some(item => item.dirName === name));
const pkgs = arrToObj(packagesVersion, 'name'); const pkgs = arrToObj(packagesVersion, 'name');
const result = []; const result = [];
noChangedPkgs.forEach((currentPkg) => { noChangedPkgs.forEach((currentPkg) => {
@ -210,6 +210,43 @@ function genOtherPkgsVersion(packagesVersion) {
} }
async function main() { async function main() {
if (isForce) {
const packagesVersion = packages.map((pkg) => {
const { name, version } = readPackageVersionAndName(pkg);
return { dirName: pkg, name, version, newVersion: version };
});
const yes = await consola.prompt(`These packages will be published (force, version unchanged): \n${packagesVersion
.map(pkg => `${pc.magenta(pkg.name)}: v${pkg.version}`)
.join('\n')}\nConfirm?`, {
type: 'confirm',
});
if (!yes) {
return;
}
// build all packages
step('\nBuilding all packages...');
if (!isDryRun) {
await run('pnpm', ['build']);
}
else { console.log(`(skipped build)`); }
// publish packages
step('\nPublishing packages...');
for (const pkg of packagesVersion) {
await publishPackage(pkg, runIfNotDry);
}
if (isDryRun) {
console.log(`\nDry run finished.`);
}
console.log();
return;
}
const changedPackages = await filterChangedPackages(); const changedPackages = await filterChangedPackages();
if (!changedPackages.length) { if (!changedPackages.length) {