From bd57ef59cefdb40fd7751a77f72e4ed1bf58df2b Mon Sep 17 00:00:00 2001 From: Daniel Chalef <131175+danielchalef@users.noreply.github.com> Date: Thu, 30 Oct 2025 23:28:06 -0700 Subject: [PATCH] Fix critical issues in MCP release workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Address all critical review comments: 1. Fix malformed Docker tags - Change tag suffixes from colons to hyphens - standalone: 1.0.0-standalone (not 1.0.0:standalone) - combined: 1.0.0 and latest (not :latest) 2. Add checkout ref for manual triggers - Use inputs.tag for workflow_dispatch events - Ensures manual builds use correct tag ref 3. Add tag input validation - Validate tag format (mcp-vX.Y.Z) before processing - Provide clear error messages for invalid input 4. Fix release summary overwriting - Both matrix jobs now append to summary correctly - Each variant creates distinct summary section 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .github/workflows/release-mcp-server.yml | 36 ++++++++++++------- mcp_server/docker/docker-compose-falkordb.yml | 2 ++ mcp_server/docker/docker-compose-neo4j.yml | 2 ++ 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/.github/workflows/release-mcp-server.yml b/.github/workflows/release-mcp-server.yml index 6edaba6f..f3ffcefc 100644 --- a/.github/workflows/release-mcp-server.yml +++ b/.github/workflows/release-mcp-server.yml @@ -27,19 +27,21 @@ jobs: variant: - name: standalone dockerfile: docker/Dockerfile.standalone - image_suffix: ":standalone" - tag_latest: ":standalone" + image_suffix: "-standalone" + tag_latest: "standalone" title: "Graphiti MCP Server (Standalone)" description: "Standalone Graphiti MCP server for external Neo4j or FalkorDB" - name: combined dockerfile: docker/Dockerfile image_suffix: "" - tag_latest: ":latest" + tag_latest: "latest" title: "FalkorDB + Graphiti MCP Server" description: "Combined FalkorDB graph database with Graphiti MCP server" steps: - name: Checkout repository uses: actions/checkout@v4 + with: + ref: ${{ github.event_name == 'workflow_dispatch' && inputs.tag || github.ref }} - name: Set up Python 3.11 uses: actions/setup-python@v5 @@ -52,6 +54,12 @@ jobs: # Get tag from either push event or manual workflow_dispatch input if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then TAG_FULL="${{ inputs.tag }}" + # Validate tag format for manual triggers + if [[ ! $TAG_FULL =~ ^mcp-v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "Error: Tag must follow format: mcp-vX.Y.Z (e.g., mcp-v1.0.0)" + echo "Received: $TAG_FULL" + exit 1 + fi TAG_VERSION=${TAG_FULL#mcp-v} else TAG_VERSION=${GITHUB_REF#refs/tags/mcp-v} @@ -103,7 +111,7 @@ jobs: tags: | type=raw,value=${{ steps.version.outputs.version }}${{ matrix.variant.image_suffix }} type=raw,value=${{ steps.version.outputs.version }}-graphiti-${{ steps.graphiti.outputs.graphiti_version }}${{ matrix.variant.image_suffix }} - type=raw,value=latest${{ matrix.variant.tag_latest }} + type=raw,value=${{ matrix.variant.tag_latest }} labels: | org.opencontainers.image.title=${{ matrix.variant.title }} org.opencontainers.image.description=${{ matrix.variant.description }} @@ -129,12 +137,14 @@ jobs: - name: Create release summary run: | - echo "## MCP Server Release Summary (${{ matrix.variant.name }})" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "**Variant:** ${{ matrix.variant.title }}" >> $GITHUB_STEP_SUMMARY - echo "**MCP Server Version:** ${{ steps.version.outputs.version }}" >> $GITHUB_STEP_SUMMARY - echo "**Graphiti Core Version:** ${{ steps.graphiti.outputs.graphiti_version }}" >> $GITHUB_STEP_SUMMARY - echo "**Build Date:** ${{ steps.meta.outputs.build_date }}" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### Docker Image Tags" >> $GITHUB_STEP_SUMMARY - echo "${{ steps.docker_meta.outputs.tags }}" | tr ',' '\n' | sed 's/^/- /' >> $GITHUB_STEP_SUMMARY + { + echo "## MCP Server Release Summary - ${{ matrix.variant.title }}" + echo "" + echo "**MCP Server Version:** ${{ steps.version.outputs.version }}" + echo "**Graphiti Core Version:** ${{ steps.graphiti.outputs.graphiti_version }}" + echo "**Build Date:** ${{ steps.meta.outputs.build_date }}" + echo "" + echo "### Docker Image Tags" + echo "${{ steps.docker_meta.outputs.tags }}" | tr ',' '\n' | sed 's/^/- /' + echo "" + } >> $GITHUB_STEP_SUMMARY diff --git a/mcp_server/docker/docker-compose-falkordb.yml b/mcp_server/docker/docker-compose-falkordb.yml index 3b6fe163..513207c3 100644 --- a/mcp_server/docker/docker-compose-falkordb.yml +++ b/mcp_server/docker/docker-compose-falkordb.yml @@ -17,6 +17,8 @@ services: graphiti-mcp: image: zepai/knowledge-graph-mcp:standalone + # Note: When building locally, this will use the local build. + # For production, pull from registry with the version tag you need build: context: .. dockerfile: docker/Dockerfile.standalone diff --git a/mcp_server/docker/docker-compose-neo4j.yml b/mcp_server/docker/docker-compose-neo4j.yml index 3b416822..069663d4 100644 --- a/mcp_server/docker/docker-compose-neo4j.yml +++ b/mcp_server/docker/docker-compose-neo4j.yml @@ -21,6 +21,8 @@ services: graphiti-mcp: image: zepai/knowledge-graph-mcp:standalone + # Note: When building locally, this will use the local build. + # For production, pull from registry with the version tag you need build: context: .. dockerfile: docker/Dockerfile.standalone