update release note
This commit is contained in:
35
.github/scripts/get-changelog.js
vendored
Normal file
35
.github/scripts/get-changelog.js
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
// Get version from command line argument
|
||||
const version = process.argv[2];
|
||||
if (!version) {
|
||||
console.error('Please provide version as argument');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Read CHANGELOG.md
|
||||
const changelogPath = path.join(process.cwd(), 'CHANGELOG.md');
|
||||
const content = fs.readFileSync(changelogPath, 'utf8');
|
||||
|
||||
// Split content into sections by h2 headers
|
||||
const sections = content.split(/\n## /);
|
||||
|
||||
// Find the section for the specified version
|
||||
const versionSection = sections.find(section => section.trim().startsWith(version));
|
||||
|
||||
if (!versionSection) {
|
||||
console.error(`No changelog found for version ${version}`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Extract content between this version and next version
|
||||
const lines = versionSection
|
||||
.split('\n')
|
||||
.slice(1) // Remove the version line itself
|
||||
.join('\n')
|
||||
.trim();
|
||||
|
||||
console.log(lines);
|
||||
17
.github/workflows/release.yml
vendored
17
.github/workflows/release.yml
vendored
@@ -37,17 +37,18 @@ jobs:
|
||||
cp main.js manifest.json styles.css ${{ env.PLUGIN_NAME }}
|
||||
zip -r ${{ env.PLUGIN_NAME }}-${{ steps.build.outputs.tag_name }}.zip ${{ env.PLUGIN_NAME }}
|
||||
ls
|
||||
echo "::set-output name=tag_name::$(git tag --sort version:refname | tail -n 1)"
|
||||
echo "tag_name=$(git tag --sort version:refname | tail -n 1)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Get release notes
|
||||
id: release_notes
|
||||
run: |
|
||||
CHANGELOG=$(sed -n -e "/## ${{ steps.bundle.outputs.tag_name }}/,/## /p" CHANGELOG.md | sed '/## /d')
|
||||
if [ -z "$CHANGELOG" ]; then
|
||||
echo "Error: No release notes found for this version in CHANGELOG.md"
|
||||
exit 1
|
||||
fi
|
||||
echo "::set-output name=body::${CHANGELOG}"
|
||||
chmod +x .github/scripts/get-changelog.js
|
||||
CHANGELOG=$(node .github/scripts/get-changelog.js ${{ steps.bundle.outputs.tag_name }})
|
||||
if [ -z "$CHANGELOG" ]; then
|
||||
echo "Error: No release notes found for this version in CHANGELOG.md"
|
||||
exit 1
|
||||
fi
|
||||
echo "changelog=$CHANGELOG" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
@@ -59,4 +60,4 @@ jobs:
|
||||
main.js
|
||||
manifest.json
|
||||
styles.css
|
||||
body: ${{ steps.release_notes.outputs.body }}
|
||||
body: ${{ steps.release_notes.outputs.changelog }}
|
||||
|
||||
Reference in New Issue
Block a user