Merge pull request #119 from czlonkowski/ci-cd
feat: Add automated release system with CI/CD pipeline
This commit is contained in:
22
README.md
22
README.md
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
[](https://opensource.org/licenses/MIT)
|
[](https://opensource.org/licenses/MIT)
|
||||||
[](https://github.com/czlonkowski/n8n-mcp)
|
[](https://github.com/czlonkowski/n8n-mcp)
|
||||||
[](https://github.com/czlonkowski/n8n-mcp)
|
[](https://github.com/czlonkowski/n8n-mcp)
|
||||||
[](https://www.npmjs.com/package/n8n-mcp)
|
[](https://www.npmjs.com/package/n8n-mcp)
|
||||||
[](https://codecov.io/gh/czlonkowski/n8n-mcp)
|
[](https://codecov.io/gh/czlonkowski/n8n-mcp)
|
||||||
[](https://github.com/czlonkowski/n8n-mcp/actions)
|
[](https://github.com/czlonkowski/n8n-mcp/actions)
|
||||||
@@ -781,6 +781,26 @@ Contributions are welcome! Please:
|
|||||||
3. Run tests (`npm test`)
|
3. Run tests (`npm test`)
|
||||||
4. Submit a pull request
|
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
|
## 👏 Acknowledgments
|
||||||
|
|
||||||
- [n8n](https://n8n.io) team for the workflow automation platform
|
- [n8n](https://n8n.io) team for the workflow automation platform
|
||||||
|
|||||||
@@ -7,6 +7,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
## [Unreleased]
|
## [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
|
### Changed
|
||||||
- **Dockerfile Consolidation**: Removed redundant `Dockerfile.n8n` in favor of single optimized `Dockerfile`
|
- **Dockerfile Consolidation**: Removed redundant `Dockerfile.n8n` in favor of single optimized `Dockerfile`
|
||||||
- n8n packages are not required at runtime for N8N_MODE functionality
|
- 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)
|
- Image size reduced by 500MB+ (no unnecessary n8n packages)
|
||||||
- Build time improved from 8+ minutes to 1-2 minutes
|
- 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
|
||||||
- Fixed missing `axios` dependency in `package.runtime.json` causing Docker build failures
|
- 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
|
- Basic n8n and MCP integration
|
||||||
- Core workflow automation features
|
- 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.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.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
|
[2.8.3]: https://github.com/czlonkowski/n8n-mcp/compare/v2.8.2...v2.8.3
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "n8n-mcp",
|
"name": "n8n-mcp",
|
||||||
"version": "2.9.1",
|
"version": "2.10.0",
|
||||||
"description": "Integration between n8n workflow automation and Model Context Protocol (MCP)",
|
"description": "Integration between n8n workflow automation and Model Context Protocol (MCP)",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -77,7 +77,9 @@
|
|||||||
"sync:runtime-version": "node scripts/sync-runtime-version.js",
|
"sync:runtime-version": "node scripts/sync-runtime-version.js",
|
||||||
"update:readme-version": "node scripts/update-readme-version.js",
|
"update:readme-version": "node scripts/update-readme-version.js",
|
||||||
"prepare:publish": "./scripts/publish-npm.sh",
|
"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": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "n8n-mcp-runtime",
|
"name": "n8n-mcp-runtime",
|
||||||
"version": "2.9.1",
|
"version": "2.10.0",
|
||||||
"description": "n8n MCP Server Runtime Dependencies Only",
|
"description": "n8n MCP Server Runtime Dependencies Only",
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|||||||
Reference in New Issue
Block a user