diff --git a/README.md b/README.md index d9d41be..2c6fe49 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![GitHub stars](https://img.shields.io/github/stars/czlonkowski/n8n-mcp?style=social)](https://github.com/czlonkowski/n8n-mcp) -[![Version](https://img.shields.io/badge/version-2.9.1-blue.svg)](https://github.com/czlonkowski/n8n-mcp) +[![Version](https://img.shields.io/badge/version-2.10.0-blue.svg)](https://github.com/czlonkowski/n8n-mcp) [![npm version](https://img.shields.io/npm/v/n8n-mcp.svg)](https://www.npmjs.com/package/n8n-mcp) [![codecov](https://codecov.io/gh/czlonkowski/n8n-mcp/graph/badge.svg?token=YOUR_TOKEN)](https://codecov.io/gh/czlonkowski/n8n-mcp) [![Tests](https://img.shields.io/badge/tests-1356%20passing-brightgreen.svg)](https://github.com/czlonkowski/n8n-mcp/actions) @@ -781,6 +781,26 @@ Contributions are welcome! Please: 3. Run tests (`npm test`) 4. Submit a pull request +### 🚀 For Maintainers: Automated Releases + +This project uses automated releases triggered by version changes: + +```bash +# Guided release preparation +npm run prepare:release + +# Test release automation +npm run test:release-automation +``` + +The system automatically handles: +- 🏷️ GitHub releases with changelog content +- 📦 NPM package publishing +- 🐳 Multi-platform Docker images +- 📚 Documentation updates + +See [Automated Release Guide](./docs/AUTOMATED_RELEASES.md) for complete details. + ## 👏 Acknowledgments - [n8n](https://n8n.io) team for the workflow automation platform diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 2885e91..4db91b6 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -7,6 +7,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [2.10.0] - 2025-08-02 + +### Added +- **Automated Release System**: Complete CI/CD pipeline for automated releases on version bump + - GitHub Actions workflow (`.github/workflows/release.yml`) with 7 coordinated jobs + - Automatic version detection and changelog extraction + - Multi-artifact publishing: GitHub releases, NPM package, Docker images + - Interactive release preparation tool (`npm run prepare:release`) + - Comprehensive release testing tool (`npm run test:release-automation`) + - Full documentation in `docs/AUTOMATED_RELEASES.md` + - Zero-touch releases: version bump → automatic everything + +### Security +- **CI/CD Security Enhancements**: + - Replaced deprecated `actions/create-release@v1` with secure `gh` CLI + - Fixed git checkout vulnerability using safe `git show` commands + - Fixed command injection risk using proper argument arrays + - Added concurrency control to prevent simultaneous releases + - Added disk space checks before resource-intensive operations + - Implemented confirmation gates for destructive operations + ### Changed - **Dockerfile Consolidation**: Removed redundant `Dockerfile.n8n` in favor of single optimized `Dockerfile` - n8n packages are not required at runtime for N8N_MODE functionality @@ -15,6 +36,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Image size reduced by 500MB+ (no unnecessary n8n packages) - Build time improved from 8+ minutes to 1-2 minutes +### Added (CI/CD Features) +- **Developer Tools**: + - `scripts/prepare-release.js`: Interactive guided release tool + - `scripts/test-release-automation.js`: Validates entire release setup + - `scripts/extract-changelog.js`: Modular changelog extraction +- **Release Automation Features**: + - NPM publishing with 3-retry mechanism for network resilience + - Multi-platform Docker builds (amd64, arm64) + - Semantic version validation and prerelease detection + - Automatic documentation badge updates + - Runtime-optimized NPM package (8 deps vs 50+, ~50MB vs 1GB+) + ### Fixed - Fixed missing `axios` dependency in `package.runtime.json` causing Docker build failures @@ -1041,6 +1074,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Basic n8n and MCP integration - Core workflow automation features +[2.10.0]: https://github.com/czlonkowski/n8n-mcp/compare/v2.9.1...v2.10.0 [2.9.1]: https://github.com/czlonkowski/n8n-mcp/compare/v2.9.0...v2.9.1 [2.9.0]: https://github.com/czlonkowski/n8n-mcp/compare/v2.8.3...v2.9.0 [2.8.3]: https://github.com/czlonkowski/n8n-mcp/compare/v2.8.2...v2.8.3 diff --git a/package.json b/package.json index 0d2e11a..ca702ad 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "n8n-mcp", - "version": "2.9.1", + "version": "2.10.0", "description": "Integration between n8n workflow automation and Model Context Protocol (MCP)", "main": "dist/index.js", "bin": { @@ -77,7 +77,9 @@ "sync:runtime-version": "node scripts/sync-runtime-version.js", "update:readme-version": "node scripts/update-readme-version.js", "prepare:publish": "./scripts/publish-npm.sh", - "update:all": "./scripts/update-and-publish-prep.sh" + "update:all": "./scripts/update-and-publish-prep.sh", + "test:release-automation": "node scripts/test-release-automation.js", + "prepare:release": "node scripts/prepare-release.js" }, "repository": { "type": "git", diff --git a/package.runtime.json b/package.runtime.json index a04e174..6155d19 100644 --- a/package.runtime.json +++ b/package.runtime.json @@ -1,6 +1,6 @@ { "name": "n8n-mcp-runtime", - "version": "2.9.1", + "version": "2.10.0", "description": "n8n MCP Server Runtime Dependencies Only", "private": true, "dependencies": {