chore: update workflow scripts

This commit is contained in:
Quorafind 2025-08-27 17:24:46 +08:00
parent f6a82d341a
commit 795340e621
3 changed files with 88 additions and 12 deletions

View file

@ -1,12 +1,12 @@
{
"name": "task-genius",
"version": "9.8.0-beta.0",
"version": "9.7.6",
"description": "Comprehensive task management plugin for Obsidian with progress bars, task status cycling, and advanced task tracking features.",
"main": "main.js",
"scripts": {
"dev": "node esbuild.config.mjs",
"build": "tsc -noEmit -skipLibCheck && node esbuild.config.mjs production",
"version": "node version-bump.mjs && git add manifest.json versions.json",
"version": "node version-bump.mjs && git add manifest.json manifest-beta.json versions.json",
"e-t": "cross-env node scripts/extract-translations.cjs",
"g-l": "cross-env node scripts/generate-locale-files.cjs",
"test": "jest",
@ -17,11 +17,12 @@
"release:minor": "release-it minor",
"release:major": "release-it major",
"release:dry": "release-it --dry-run",
"release:beta": "release-it --config .release-it.beta.cjs --preRelease=beta",
"release:beta:patch": "release-it patch --config .release-it.beta.cjs --preRelease=beta",
"release:beta:minor": "release-it minor --config .release-it.beta.cjs --preRelease=beta",
"release:beta:major": "release-it major --config .release-it.beta.cjs --preRelease=beta",
"release:beta:dry": "release-it --config .release-it.beta.cjs --preRelease=beta --dry-run"
"release:beta": "node scripts/smart-beta-release.mjs",
"release:beta:continue": "node scripts/smart-beta-release.mjs continue",
"release:beta:patch": "node scripts/smart-beta-release.mjs patch",
"release:beta:minor": "node scripts/smart-beta-release.mjs minor",
"release:beta:major": "node scripts/smart-beta-release.mjs major",
"release:beta:dry": "node scripts/smart-beta-release.mjs --dry-run"
},
"keywords": [
"obsidian",

View file

@ -0,0 +1,55 @@
#!/usr/bin/env node
import { execSync } from 'child_process';
import { readFileSync } from 'fs';
import semver from 'semver';
// Get the current version from package.json
const packageJson = JSON.parse(readFileSync('package.json', 'utf8'));
const currentVersion = packageJson.version;
// Parse command line arguments
const args = process.argv.slice(2);
const increment = args[0]; // 'patch', 'minor', 'major', or undefined
// Check if we're already on a beta version
const isCurrentlyBeta = semver.prerelease(currentVersion) !== null;
let releaseCommand = 'npx release-it --config .release-it.beta.cjs';
if (isCurrentlyBeta && (!increment || increment === 'continue')) {
// If already on beta and no increment specified, just bump the prerelease
console.log(`📦 Current version: ${currentVersion} (beta)`);
console.log('🔄 Continuing beta sequence...');
releaseCommand += ' --preRelease';
} else if (increment === 'patch' || increment === 'minor' || increment === 'major') {
// If increment is specified, create new beta.0 for that version
console.log(`📦 Current version: ${currentVersion}`);
console.log(`🚀 Creating new ${increment} beta version...`);
releaseCommand += ` ${increment} --preRelease=beta`;
} else if (!isCurrentlyBeta) {
// If not on beta and no increment, default to patch
console.log(`📦 Current version: ${currentVersion} (stable)`);
console.log('🚀 Creating new patch beta version...');
releaseCommand += ' patch --preRelease=beta';
} else {
// Default to continuing prerelease
console.log(`📦 Current version: ${currentVersion} (beta)`);
console.log('🔄 Continuing beta sequence...');
releaseCommand += ' --preRelease';
}
// Add any additional arguments
const additionalArgs = args.slice(1).join(' ');
if (additionalArgs) {
releaseCommand += ' ' + additionalArgs;
}
console.log(`\n📝 Executing: ${releaseCommand}\n`);
try {
execSync(releaseCommand, { stdio: 'inherit' });
} catch (error) {
console.error('❌ Release failed:', error.message);
process.exit(1);
}

View file

@ -1,14 +1,34 @@
import { readFileSync, writeFileSync } from "fs";
import { readFileSync, writeFileSync, existsSync } from "fs";
import semverPrerelease from "semver/functions/prerelease.js";
const targetVersion = process.env.npm_package_version;
// read minAppVersion from manifest.json and bump version to target version
let manifest = JSON.parse(readFileSync("manifest.json", "utf8"));
// Check if this is a prerelease (beta) version
const isPreRelease = semverPrerelease(targetVersion) !== null;
// Determine which manifest file to read and update
const manifestFile = isPreRelease ? "manifest-beta.json" : "manifest.json";
// For beta releases, read from manifest-beta.json if it exists, otherwise from manifest.json
let sourceManifestFile = manifestFile;
if (isPreRelease && !existsSync("manifest-beta.json")) {
sourceManifestFile = "manifest.json";
}
// read minAppVersion from the appropriate manifest and bump version
let manifest = JSON.parse(readFileSync(sourceManifestFile, "utf8"));
const { minAppVersion } = manifest;
manifest.version = targetVersion;
writeFileSync("manifest.json", JSON.stringify(manifest, null, "\t"));
// update versions.json with target version and minAppVersion from manifest.json
// Only update the appropriate manifest file
// For beta releases: only update manifest-beta.json
// For stable releases: update manifest.json (and sync to manifest-beta.json is handled by ob-bumper)
writeFileSync(manifestFile, JSON.stringify(manifest, null, "\t"));
// Always update versions.json with target version and minAppVersion
let versions = JSON.parse(readFileSync("versions.json", "utf8"));
versions[targetVersion] = minAppVersion;
writeFileSync("versions.json", JSON.stringify(versions, null, "\t"));
console.log(`Version bumped to ${targetVersion} (${isPreRelease ? 'beta' : 'stable'} release)`);
console.log(`Updated: ${manifestFile}, versions.json`);