fix: enable version bumping in manual release workflow

- Fix version-bump.js to actually update package.json version
- Add tag existence check to prevent duplicate tag errors
- Remove semantic-release dependency from version bumping
This commit is contained in:
Brian Madison
2025-08-16 20:42:35 -05:00
parent ba4fb4d084
commit 1772a30368
2 changed files with 35 additions and 13 deletions

View File

@@ -129,8 +129,13 @@ jobs:
- name: Create and push tag
run: |
git tag -a "v${{ steps.version.outputs.new_version }}" -m "Release v${{ steps.version.outputs.new_version }}"
git push origin "v${{ steps.version.outputs.new_version }}"
# Check if tag already exists
if git rev-parse "v${{ steps.version.outputs.new_version }}" >/dev/null 2>&1; then
echo "Tag v${{ steps.version.outputs.new_version }} already exists, skipping tag creation"
else
git tag -a "v${{ steps.version.outputs.new_version }}" -m "Release v${{ steps.version.outputs.new_version }}"
git push origin "v${{ steps.version.outputs.new_version }}"
fi
- name: Push changes to main
run: git push origin HEAD:main

View File

@@ -31,18 +31,35 @@ async function bumpVersion(type = 'patch') {
process.exit(1);
}
console.log(chalk.yellow('⚠️ Manual version bumping is disabled.'));
console.log(chalk.blue('🤖 This project uses semantic-release for automated versioning.'));
console.log('');
console.log(chalk.bold('To create a new release, use conventional commits:'));
console.log(chalk.cyan(' feat: new feature (minor version bump)'));
console.log(chalk.cyan(' fix: bug fix (patch version bump)'));
console.log(chalk.cyan(' feat!: breaking change (major version bump)'));
console.log('');
console.log(chalk.dim('Example: git commit -m "feat: add new installer features"'));
console.log(chalk.dim('Then push to main branch to trigger automatic release.'));
const currentVersion = getCurrentVersion();
const versionParts = currentVersion.split('.').map(Number);
let newVersion;
return null;
switch (type) {
case 'major': {
newVersion = `${versionParts[0] + 1}.0.0`;
break;
}
case 'minor': {
newVersion = `${versionParts[0]}.${versionParts[1] + 1}.0`;
break;
}
case 'patch': {
newVersion = `${versionParts[0]}.${versionParts[1]}.${versionParts[2] + 1}`;
break;
}
}
console.log(chalk.blue(`Bumping version: ${currentVersion}${newVersion}`));
// Update package.json
const packageJson = JSON.parse(fs.readFileSync('package.json', 'utf8'));
packageJson.version = newVersion;
fs.writeFileSync('package.json', JSON.stringify(packageJson, null, 2) + '\n');
console.log(chalk.green(`✓ Updated package.json to ${newVersion}`));
return newVersion;
}
async function main() {