4.0 KiB
4.0 KiB
Release Guide
This guide explains how to create releases for n8n-MCP and how Docker tags are managed.
Version Tag Strategy
When you create a Git tag starting with v, the GitHub Actions workflow automatically builds and pushes Docker images with the following tags:
Example: Creating Release v1.2.3
# Create and push a version tag
git tag -a v1.2.3 -m "Release version 1.2.3"
git push origin v1.2.3
This will automatically create the following Docker tags:
ghcr.io/czlonkowski/n8n-mcp:1.2.3(exact version)ghcr.io/czlonkowski/n8n-mcp:1.2(minor version)ghcr.io/czlonkowski/n8n-mcp:1(major version)ghcr.io/czlonkowski/n8n-mcp:latest(if from main branch)
Tag Types Explained
Latest Tag
- When: Every push to main branch
- Usage: Default tag for users who want the latest stable version
- Example:
docker pull ghcr.io/czlonkowski/n8n-mcp:latest
Version Tags
- When: When you create a Git tag like
v1.2.3 - Usage: Users who want a specific version
- Example:
docker pull ghcr.io/czlonkowski/n8n-mcp:1.2.3
Branch Tags
- When: Every push to a branch
- Usage: Testing specific branches
- Example:
docker pull ghcr.io/czlonkowski/n8n-mcp:main
SHA Tags
- When: Every commit
- Usage: Debugging specific commits
- Example:
docker pull ghcr.io/czlonkowski/n8n-mcp:main-abc123
Release Process
1. Prepare Release
# Update version in package.json
npm version patch # or minor/major
# Update CHANGELOG.md
echo "## v1.2.3 - $(date +%Y-%m-%d)" >> CHANGELOG.md
echo "- Feature: Added X" >> CHANGELOG.md
echo "- Fix: Fixed Y" >> CHANGELOG.md
# Commit changes
git add -A
git commit -m "chore: prepare release v1.2.3"
git push origin main
2. Create Release Tag
# Create annotated tag
git tag -a v1.2.3 -m "Release v1.2.3
- Feature: Added X
- Fix: Fixed Y"
# Push tag to trigger Docker build
git push origin v1.2.3
3. Create GitHub Release
# Using GitHub CLI
gh release create v1.2.3 \
--title "Release v1.2.3" \
--notes "See CHANGELOG.md for details" \
--latest
4. Verify Docker Images
# Wait for GitHub Actions to complete, then verify
docker pull ghcr.io/czlonkowski/n8n-mcp:1.2.3
docker pull ghcr.io/czlonkowski/n8n-mcp:latest
# Test the new version
docker run --rm ghcr.io/czlonkowski/n8n-mcp:1.2.3 --version
Semantic Versioning
Follow Semantic Versioning:
- MAJOR (1.0.0 → 2.0.0): Breaking changes
- MINOR (1.0.0 → 1.1.0): New features, backwards compatible
- PATCH (1.0.0 → 1.0.1): Bug fixes, backwards compatible
Examples:
- Breaking API change → v2.0.0
- New MCP tool added → v1.1.0
- Bug fix in parser → v1.0.1
Pre-releases
For testing releases:
# Create pre-release tag
git tag -a v1.2.3-beta.1 -m "Beta release"
git push origin v1.2.3-beta.1
This creates:
ghcr.io/czlonkowski/n8n-mcp:1.2.3-beta.1
Docker Compose Updates
When releasing, update documentation to reference specific versions:
# Stable version (recommended for production)
services:
n8n-mcp:
image: ghcr.io/czlonkowski/n8n-mcp:1.2
# Latest version (for development/testing)
services:
n8n-mcp:
image: ghcr.io/czlonkowski/n8n-mcp:latest
Best Practices
- Always test before creating a release tag
- Update documentation to reference new versions
- Use annotated tags (
-aflag) with descriptive messages - Follow semver for version numbers
- Update CHANGELOG.md with every release
Rollback Process
If a release has issues:
# Users can pin to previous version
docker pull ghcr.io/czlonkowski/n8n-mcp:1.1.0
# Or use minor version for automatic patches
docker pull ghcr.io/czlonkowski/n8n-mcp:1.1
Checking Available Tags
# Using Docker Hub API (for public registries)
curl -s https://ghcr.io/v2/czlonkowski/n8n-mcp/tags/list
# Or check GitHub packages page
# https://github.com/czlonkowski/n8n-mcp/pkgs/container/n8n-mcp