mirror of
https://github.com/asyouplz/SpeechNote.git
synced 2026-07-22 06:43:33 +00:00
* feat: implement semantic-release automation - Add semantic-release and required plugins - Create .releaserc.json with Obsidian plugin configuration - Add scripts/update-version.mjs for automated version updates - Create release-auto.yml workflow for automated releases - Update npm scripts with semantic-release commands - Deprecate version-bump.mjs (will be removed after stabilization) - Update .gitignore for semantic-release cache This enables fully automated releases on PR merge to main: - Analyzes commit messages (Conventional Commits) - Determines version bump (major/minor/patch) - Updates manifest.json, package.json, versions.json - Generates CHANGELOG.md - Creates GitHub release with assets BREAKING CHANGE: Manual version updates via version-bump.mjs will be deprecated. Use Conventional Commits format for all commits going forward. * fix: address code review feedback from Claude bot Addressing 8 issues identified in PR #54: - [P0/Critical] Disable version-bump.yml to prevent workflow conflicts - [P0/Critical] Remove persist-credentials: false from release-auto.yml - [P0/Critical] Remove deprecated version lifecycle hook in package.json - [P1/Important] Add semver and manifest validation to update-version.mjs - [P1/Important] Fix JSON formatting consistency in scripts - [P2/Optional] Enhance build artifact verification with file size checks - [P2/Optional] Rename release.sh to release-emergency.sh and add warning * fix: address final code review points and documentation updates * fix: address third round of code review feedback - Revert pre-commit hook to use lint-staged - Add file existence checks to update-version.mjs - Remove unnecessary npm override in package.json - Add syntax verification for build artifacts in release workflow * refactor: address pr #54 code review feedback - add lint/typecheck/test steps to release-auto.yml workflow - remove unnecessary token permissions (issues/pull-requests) - add dry-run mode to update-version.mjs script - strengthen commitlint rules (subject-case, max-length) - improve git pull verification in emergency release script - add RELEASING.md documentation with rollback procedures - add unit tests for update-version.mjs script (7 tests) * fix: address follow-up pr #54 review feedback - remove continue-on-error from test step (P0) - add package-lock.json to semantic-release git assets (P0) - relax commitlint subject-case rule to allow sentence-case (P1) - reuse update-version.mjs in emergency release script (P1) * fix: add workflow skip protection and fix package-lock sync - add if condition to prevent infinite loop from release commits - add npm install --package-lock-only to prepareCmd for package-lock.json sync * fix: address final pr review feedback - add CHANGELOG.md bootstrap file for semantic-release (P0) - split package-lock sync into separate exec plugin for correct timing (P0) - add continue-on-error to test:ci temporarily (P1 - tests failing) * fix: address must-fix review feedback - remove test step from release workflow (tests unstable, fix in follow-up) - restore husky hook initialization (shebang and husky.sh)
125 lines
No EOL
3.6 KiB
JSON
125 lines
No EOL
3.6 KiB
JSON
{
|
|
"branches": [
|
|
"main"
|
|
],
|
|
"plugins": [
|
|
[
|
|
"@semantic-release/commit-analyzer",
|
|
{
|
|
"preset": "conventionalcommits",
|
|
"releaseRules": [
|
|
{
|
|
"type": "feat",
|
|
"release": "minor"
|
|
},
|
|
{
|
|
"type": "fix",
|
|
"release": "patch"
|
|
},
|
|
{
|
|
"type": "perf",
|
|
"release": "patch"
|
|
},
|
|
{
|
|
"type": "refactor",
|
|
"release": "patch"
|
|
},
|
|
{
|
|
"breaking": true,
|
|
"release": "major"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
[
|
|
"@semantic-release/release-notes-generator",
|
|
{
|
|
"preset": "conventionalcommits",
|
|
"presetConfig": {
|
|
"types": [
|
|
{
|
|
"type": "feat",
|
|
"section": "🚀 Features"
|
|
},
|
|
{
|
|
"type": "fix",
|
|
"section": "🐛 Bug Fixes"
|
|
},
|
|
{
|
|
"type": "perf",
|
|
"section": "⚡ Performance Improvements"
|
|
},
|
|
{
|
|
"type": "refactor",
|
|
"section": "♻️ Code Refactoring"
|
|
},
|
|
{
|
|
"type": "docs",
|
|
"section": "📝 Documentation"
|
|
},
|
|
{
|
|
"type": "chore",
|
|
"section": "🔧 Maintenance"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
[
|
|
"@semantic-release/changelog",
|
|
{
|
|
"changelogFile": "CHANGELOG.md"
|
|
}
|
|
],
|
|
[
|
|
"@semantic-release/npm",
|
|
{
|
|
"npmPublish": false
|
|
}
|
|
],
|
|
[
|
|
"@semantic-release/exec",
|
|
{
|
|
"prepareCmd": "node scripts/update-version.mjs ${nextRelease.version}"
|
|
}
|
|
],
|
|
[
|
|
"@semantic-release/exec",
|
|
{
|
|
"prepareCmd": "npm install --package-lock-only"
|
|
}
|
|
],
|
|
[
|
|
"@semantic-release/git",
|
|
{
|
|
"assets": [
|
|
"manifest.json",
|
|
"package.json",
|
|
"package-lock.json",
|
|
"versions.json",
|
|
"CHANGELOG.md"
|
|
],
|
|
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
|
|
}
|
|
],
|
|
[
|
|
"@semantic-release/github",
|
|
{
|
|
"assets": [
|
|
{
|
|
"path": "main.js",
|
|
"label": "Main Plugin File"
|
|
},
|
|
{
|
|
"path": "manifest.json",
|
|
"label": "Manifest"
|
|
},
|
|
{
|
|
"path": "styles.css",
|
|
"label": "Styles"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
]
|
|
} |