fix: resolve release workflow version bump issues

- Fixed bump-version.js to properly handle --yes flag in CI environments
- Added check to skip commit if no changes to package.json or CHANGELOG.md
- Ensured script exits cleanly after version bump with --yes flag
This commit is contained in:
2026-03-31 23:18:18 -07:00
parent 6b9b690947
commit fe18a8b9fe
2 changed files with 44 additions and 30 deletions
+6 -2
View File
@@ -80,8 +80,12 @@ jobs:
- name: Commit version bump - name: Commit version bump
run: | run: |
git add package.json CHANGELOG.md git add package.json CHANGELOG.md
git commit -m "chore: bump version to v${{ steps.version.outputs.new_version }}" if git diff --cached --quiet; then
git push origin main echo "No changes to commit (version may already be at target version)"
else
git commit -m "chore: bump version to v${{ steps.version.outputs.new_version }}"
git push origin main
fi
- name: Create git tag for release - name: Create git tag for release
run: | run: |
+38 -28
View File
@@ -175,37 +175,47 @@ function main() {
console.log(`New version: ${currentVersion}${newVersion}`); console.log(`New version: ${currentVersion}${newVersion}`);
} }
// Confirm with user // Confirm with user (or skip if --yes flag is set)
const readline = require('readline'); if (skipConfirm) {
const rl = readline.createInterface({ // Update package.json
input: process.stdin, updatePackageJson(newVersion);
output: process.stdout
});
rl.question(`\nApply version ${newVersion}? (y/N) `, (answer) => { // Update changelog
if (answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes') { if (bumpType !== 'custom') {
// Update package.json const commits = getCommitsSinceLastTag();
updatePackageJson(newVersion); updateChangelog(newVersion, commits, bumpType);
// Update changelog
if (bumpType !== 'custom') {
const commits = getCommitsSinceLastTag();
updateChangelog(newVersion, commits, bumpType);
}
console.log(`\n✅ Version bumped to ${newVersion}`);
console.log(`\nNext steps:`);
console.log(` 1. Review changes: git diff`);
console.log(` 2. Commit changes: git commit -am "chore: bump version to v${newVersion}"`);
console.log(` 3. Create tag: git tag -a v${newVersion} -m "Release v${newVersion}"`);
console.log(` 4. Push changes: git push origin main`);
console.log(` 5. Push tag: git push origin v${newVersion}`);
} else {
console.log('❌ Version bump cancelled');
} }
rl.close(); console.log(`\n✅ Version bumped to ${newVersion}`);
}); process.exit(0);
} else {
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.question(`\nApply version ${newVersion}? (y/N) `, (answer) => {
if (answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes') {
// Update package.json
updatePackageJson(newVersion);
// Update changelog
if (bumpType !== 'custom') {
const commits = getCommitsSinceLastTag();
updateChangelog(newVersion, commits, bumpType);
}
console.log(`\n✅ Version bumped to ${newVersion}`);
process.exit(0);
} else {
console.log('❌ Version bump cancelled');
process.exit(1);
}
rl.close();
});
}
} }
// Run main function // Run main function