mirror of
https://github.com/czlonkowski/n8n-mcp.git
synced 2026-02-06 05:23:08 +00:00
fix: resolve release workflow YAML parsing errors with script-based approach
Replace heredoc-in-command-substitution pattern with script-based release notes
generation to fix YAML parser interpretation issues.
Root cause:
- GitHub Actions YAML parser interprets heredoc content inside $() as YAML structure
- Line 149 error: parser expected ':' after '### Initial Release'
- Pattern: NOTES=$(cat <<EOF...) causes content to be parsed as YAML
Solution:
- Created scripts/generate-initial-release-notes.js (mirrors generate-release-notes.js)
- Script outputs markdown that YAML parser doesn't interpret
- Keeps --- separators (safe in script output, not in heredocs)
- Consistent pattern across workflow (all release notes from scripts)
Benefits:
- Fixes CI failures since Oct 24 (commit 0e26ea6)
- YAML validates successfully with Python yaml.safe_load()
- Easier to test and maintain release note generation
- No need to change --- to ___ separators
Testing:
- Script generates correct markdown locally
- YAML syntax validated
- TypeScript builds and type checks pass
Fixes: Release workflow runs 18806809439, 18806655633, 18806137471, etc.
Related: PR #371 (different approach attempted)
Concieved by Romuald Członkowski - www.aiadvisors.pl/en
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
20
.github/workflows/release.yml
vendored
20
.github/workflows/release.yml
vendored
@@ -142,19 +142,13 @@ jobs:
|
||||
if [ -z "$PREVIOUS_TAG" ]; then
|
||||
echo "ℹ️ No previous tag found, this might be the first release"
|
||||
|
||||
# Get all commits up to current commit - use heredoc for multiline
|
||||
NOTES=$(cat <<EOF
|
||||
### 🎉 Initial Release
|
||||
|
||||
This is the initial release of n8n-mcp v$CURRENT_VERSION.
|
||||
|
||||
---
|
||||
|
||||
**Release Statistics:**
|
||||
- Commit count: $(git rev-list --count HEAD)
|
||||
- First release setup
|
||||
EOF
|
||||
)
|
||||
# Generate initial release notes using script
|
||||
if NOTES=$(node scripts/generate-initial-release-notes.js "$CURRENT_VERSION" 2>/dev/null); then
|
||||
echo "✅ Successfully generated initial release notes for version $CURRENT_VERSION"
|
||||
else
|
||||
echo "⚠️ Could not generate initial release notes for version $CURRENT_VERSION"
|
||||
NOTES="Initial release v$CURRENT_VERSION"
|
||||
fi
|
||||
|
||||
echo "has-notes=true" >> $GITHUB_OUTPUT
|
||||
|
||||
|
||||
Reference in New Issue
Block a user