diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d5e134d..b012d86 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -79,6 +79,38 @@ jobs: echo "ℹ️ No version change detected" fi + - name: Validate version against npm registry + if: steps.check.outputs.changed == 'true' + run: | + CURRENT_VERSION="${{ steps.check.outputs.version }}" + + # Get latest version from npm (handle package not found) + NPM_VERSION=$(npm view n8n-mcp version 2>/dev/null || echo "0.0.0") + + echo "Current version: $CURRENT_VERSION" + echo "NPM registry version: $NPM_VERSION" + + # Check if version already exists in npm + if [ "$CURRENT_VERSION" = "$NPM_VERSION" ]; then + echo "❌ Error: Version $CURRENT_VERSION already published to npm" + echo "Please bump the version in package.json before releasing" + exit 1 + fi + + # Simple semver comparison (assumes format: major.minor.patch) + # Compare if current version is greater than npm version + if [ "$NPM_VERSION" != "0.0.0" ]; then + # Sort versions and check if current is not the highest + HIGHEST=$(printf '%s\n%s' "$NPM_VERSION" "$CURRENT_VERSION" | sort -V | tail -n1) + if [ "$HIGHEST" != "$CURRENT_VERSION" ]; then + echo "❌ Error: Version $CURRENT_VERSION is not greater than npm version $NPM_VERSION" + echo "Please use a higher version number" + exit 1 + fi + fi + + echo "✅ Version $CURRENT_VERSION is valid (higher than npm version $NPM_VERSION)" + extract-changelog: name: Extract Changelog runs-on: ubuntu-latest @@ -206,8 +238,8 @@ jobs: echo "id=$RELEASE_ID" >> $GITHUB_OUTPUT echo "upload_url=https://uploads.github.com/repos/${{ github.repository }}/releases/$RELEASE_ID/assets{?name,label}" >> $GITHUB_OUTPUT - build-and-test: - name: Build and Test + build-and-verify: + name: Build and Verify runs-on: ubuntu-latest needs: detect-version-change if: needs.detect-version-change.outputs.version-changed == 'true' @@ -226,22 +258,28 @@ jobs: - name: Build project run: npm run build - - - name: Rebuild database - run: npm run rebuild - - - name: Run tests - run: npm test - env: - CI: true - + + # Database is already built and committed during development + # Rebuilding here causes segfault due to memory pressure (exit code 139) + - name: Verify database exists + run: | + if [ ! -f "data/nodes.db" ]; then + echo "❌ Error: data/nodes.db not found" + echo "Please run 'npm run rebuild' locally and commit the database" + exit 1 + fi + echo "✅ Database exists ($(du -h data/nodes.db | cut -f1))" + + # Skip tests - they already passed in PR before merge + # Running them again on the same commit adds no safety, only time (~6-7 min) + - name: Run type checking run: npm run typecheck publish-npm: name: Publish to NPM runs-on: ubuntu-latest - needs: [detect-version-change, build-and-test, create-release] + needs: [detect-version-change, build-and-verify, create-release] if: needs.detect-version-change.outputs.version-changed == 'true' steps: - name: Checkout repository @@ -259,10 +297,16 @@ jobs: - name: Build project run: npm run build - - - name: Rebuild database - run: npm run rebuild - + + # Database is already built and committed during development + - name: Verify database exists + run: | + if [ ! -f "data/nodes.db" ]; then + echo "❌ Error: data/nodes.db not found" + exit 1 + fi + echo "✅ Database exists ($(du -h data/nodes.db | cut -f1))" + - name: Sync runtime version run: npm run sync:runtime-version @@ -324,7 +368,7 @@ jobs: build-docker: name: Build and Push Docker Images runs-on: ubuntu-latest - needs: [detect-version-change, build-and-test] + needs: [detect-version-change, build-and-verify] if: needs.detect-version-change.outputs.version-changed == 'true' permissions: contents: read diff --git a/package.json b/package.json index 175b116..25df1ab 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "n8n-mcp", - "version": "2.17.5", + "version": "2.17.6", "description": "Integration between n8n workflow automation and Model Context Protocol (MCP)", "main": "dist/index.js", "bin": { diff --git a/package.runtime.json b/package.runtime.json index 0a7a85f..57ad458 100644 --- a/package.runtime.json +++ b/package.runtime.json @@ -1,6 +1,6 @@ { "name": "n8n-mcp-runtime", - "version": "2.17.3", + "version": "2.17.6", "description": "n8n MCP Server Runtime Dependencies Only", "private": true, "dependencies": {