Open
Description
When running semantic-release
with the @semantic-release/git
plugin, the log output from semantic-release only shows that two files (CHANGELOG.md and package.json) are being committed. However, the git show
command shows that additional files (manifest.json and a zip file in the dist directory) are also being committed (which is the goal author tries to achieve)
Steps to reproduce:
- Run semantic-release with the @semantic-release/git plugin.
- Check the log output from semantic-release.
- Run the git show command.
Expected behavior:
The log output from semantic-release should accurately reflect all the files that are being committed.
Actual behavior:
The log output from semantic-release only shows that two files are being committed, even though more files are actually being committed.
Plugin logs | Actually committed |
---|---|
CHANGELOG.md , package.json |
CHANGELOG.md , package.json , dist/jobLander-0.5.10.zip , manifest.json |
Additional context:
.releaserc
{
"branches": [
"main"
],
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@semantic-release/changelog",
[
"semantic-release-chrome",
{
"extensionId": "hafhjepjihcimcljkdphpinannbdmnhf",
"asset": "./dist/jobLander-${nextRelease.version}.zip",
"skipPrepare": true,
"target": "draft"
}
],
[
"@semantic-release/git",
{
"assets": [
"package.json",
"CHANGELOG.md",
"dist/jobLander-${nextRelease.version}.zip",
"manifest.json"
],
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
}
]
],
"prepare": [
"@semantic-release/changelog",
{
"path": "@semantic-release/exec",
"cmd": "node ./scripts/prepare-publish.js ${nextRelease.version}"
},
"@semantic-release/git"
]
}
prepare-publish.js
#!/usr/bin/env node
// file: scripts/prepare-publish.js
/* eslint-disable @typescript-eslint/no-var-requires */
/* eslint-disable no-console */
const fs = require('fs');
const { execSync } = require('child_process');
const path = require('path');
const rootDir = path.join(__dirname, '..');
// Get the new version from the command line arguments
const newVersion = process.argv[2];
if (!newVersion) {
console.error('Please provide a version number as a command line argument.');
process.exit(1);
}
console.log(`Preparing release ${newVersion}...`);
try {
// Read and update the package.json file
const packageJsonPath = path.join(rootDir, 'package.json');
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
packageJson.version = newVersion;
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
console.log('Updated version in package.json to', newVersion);
} catch (error) {
console.error('An error occurred while updating package.json:', error);
process.exit(1);
}
try {
// Read and update the manifest.json file
const manifestJsonPath = path.join(rootDir, 'manifest.json');
const manifestJson = JSON.parse(fs.readFileSync(manifestJsonPath, 'utf8'));
manifestJson.version = newVersion;
fs.writeFileSync(manifestJsonPath, JSON.stringify(manifestJson, null, 2));
console.log('Updated version in manifest.json to', newVersion);
execSync('git add manifest.json'); // THIS IS IMPORTANT
console.log('Added manifest.json to Git');
} catch (error) {
console.error('An error occurred while updating manifest.json:', error);
process.exit(1);
}
try {
// Build the app
execSync('yarn build');
console.log('Build completed');
} catch (error) {
console.error('An error occurred during the build:', error);
process.exit(1);
}
try {
// Zip the dist folder
execSync(`zip -r ./dist/jobLander-${newVersion}.zip ./extension`);
console.log('Zipped the /extension folder');
execSync(`git add ./dist/jobLander-${newVersion}.zip`); // THIS IS IMPORTANT
console.log(`Added ./dist/jobLander-${newVersion}.zip to Git`);
} catch (error) {
console.error('An error occurred while zipping the dist folder:', error);
process.exit(1);
}
console.log('Preparation is finished, continue with publishing...');
git show --name-only
commit 661dcfc4424c8b7deafd58148be0d5464265a136 (HEAD -> main, tag: v0.5.10, origin/main, origin/HEAD)
Author: semantic-release-bot <semantic-release-bot@martynus.net>
Date: Sun Mar 17 22:47:23 2024 +0000
chore(release): 0.5.10 [skip ci]
## [0.5.10](https://github.com/sorokinvj/JobLander-extension/compare/v0.5.9...v0.5.10) (2024-03-17)
### Bug Fixes
* correct path in releaserc ([128ddec](https://github.com/sorokinvj/JobLander-extension/commit/128ddecb7210c78cccee00a8669482da74ee2b0c))
CHANGELOG.md
dist/jobLander-0.5.10.zip
manifest.json
package.json
Metadata
Metadata
Assignees
Labels
No labels