Fix critical issues in MCP release workflow
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 <noreply@anthropic.com>
This commit is contained in:
parent
3726498cf8
commit
bd57ef59ce
3 changed files with 27 additions and 13 deletions
36
.github/workflows/release-mcp-server.yml
vendored
36
.github/workflows/release-mcp-server.yml
vendored
|
|
@ -27,19 +27,21 @@ jobs:
|
||||||
variant:
|
variant:
|
||||||
- name: standalone
|
- name: standalone
|
||||||
dockerfile: docker/Dockerfile.standalone
|
dockerfile: docker/Dockerfile.standalone
|
||||||
image_suffix: ":standalone"
|
image_suffix: "-standalone"
|
||||||
tag_latest: ":standalone"
|
tag_latest: "standalone"
|
||||||
title: "Graphiti MCP Server (Standalone)"
|
title: "Graphiti MCP Server (Standalone)"
|
||||||
description: "Standalone Graphiti MCP server for external Neo4j or FalkorDB"
|
description: "Standalone Graphiti MCP server for external Neo4j or FalkorDB"
|
||||||
- name: combined
|
- name: combined
|
||||||
dockerfile: docker/Dockerfile
|
dockerfile: docker/Dockerfile
|
||||||
image_suffix: ""
|
image_suffix: ""
|
||||||
tag_latest: ":latest"
|
tag_latest: "latest"
|
||||||
title: "FalkorDB + Graphiti MCP Server"
|
title: "FalkorDB + Graphiti MCP Server"
|
||||||
description: "Combined FalkorDB graph database with Graphiti MCP server"
|
description: "Combined FalkorDB graph database with Graphiti MCP server"
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
ref: ${{ github.event_name == 'workflow_dispatch' && inputs.tag || github.ref }}
|
||||||
|
|
||||||
- name: Set up Python 3.11
|
- name: Set up Python 3.11
|
||||||
uses: actions/setup-python@v5
|
uses: actions/setup-python@v5
|
||||||
|
|
@ -52,6 +54,12 @@ jobs:
|
||||||
# Get tag from either push event or manual workflow_dispatch input
|
# Get tag from either push event or manual workflow_dispatch input
|
||||||
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
|
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
|
||||||
TAG_FULL="${{ inputs.tag }}"
|
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}
|
TAG_VERSION=${TAG_FULL#mcp-v}
|
||||||
else
|
else
|
||||||
TAG_VERSION=${GITHUB_REF#refs/tags/mcp-v}
|
TAG_VERSION=${GITHUB_REF#refs/tags/mcp-v}
|
||||||
|
|
@ -103,7 +111,7 @@ jobs:
|
||||||
tags: |
|
tags: |
|
||||||
type=raw,value=${{ steps.version.outputs.version }}${{ matrix.variant.image_suffix }}
|
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=${{ 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: |
|
labels: |
|
||||||
org.opencontainers.image.title=${{ matrix.variant.title }}
|
org.opencontainers.image.title=${{ matrix.variant.title }}
|
||||||
org.opencontainers.image.description=${{ matrix.variant.description }}
|
org.opencontainers.image.description=${{ matrix.variant.description }}
|
||||||
|
|
@ -129,12 +137,14 @@ jobs:
|
||||||
|
|
||||||
- name: Create release summary
|
- name: Create release summary
|
||||||
run: |
|
run: |
|
||||||
echo "## MCP Server Release Summary (${{ matrix.variant.name }})" >> $GITHUB_STEP_SUMMARY
|
{
|
||||||
echo "" >> $GITHUB_STEP_SUMMARY
|
echo "## MCP Server Release Summary - ${{ matrix.variant.title }}"
|
||||||
echo "**Variant:** ${{ matrix.variant.title }}" >> $GITHUB_STEP_SUMMARY
|
echo ""
|
||||||
echo "**MCP Server Version:** ${{ steps.version.outputs.version }}" >> $GITHUB_STEP_SUMMARY
|
echo "**MCP Server Version:** ${{ steps.version.outputs.version }}"
|
||||||
echo "**Graphiti Core Version:** ${{ steps.graphiti.outputs.graphiti_version }}" >> $GITHUB_STEP_SUMMARY
|
echo "**Graphiti Core Version:** ${{ steps.graphiti.outputs.graphiti_version }}"
|
||||||
echo "**Build Date:** ${{ steps.meta.outputs.build_date }}" >> $GITHUB_STEP_SUMMARY
|
echo "**Build Date:** ${{ steps.meta.outputs.build_date }}"
|
||||||
echo "" >> $GITHUB_STEP_SUMMARY
|
echo ""
|
||||||
echo "### Docker Image Tags" >> $GITHUB_STEP_SUMMARY
|
echo "### Docker Image Tags"
|
||||||
echo "${{ steps.docker_meta.outputs.tags }}" | tr ',' '\n' | sed 's/^/- /' >> $GITHUB_STEP_SUMMARY
|
echo "${{ steps.docker_meta.outputs.tags }}" | tr ',' '\n' | sed 's/^/- /'
|
||||||
|
echo ""
|
||||||
|
} >> $GITHUB_STEP_SUMMARY
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,8 @@ services:
|
||||||
|
|
||||||
graphiti-mcp:
|
graphiti-mcp:
|
||||||
image: zepai/knowledge-graph-mcp:standalone
|
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:
|
build:
|
||||||
context: ..
|
context: ..
|
||||||
dockerfile: docker/Dockerfile.standalone
|
dockerfile: docker/Dockerfile.standalone
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,8 @@ services:
|
||||||
|
|
||||||
graphiti-mcp:
|
graphiti-mcp:
|
||||||
image: zepai/knowledge-graph-mcp:standalone
|
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:
|
build:
|
||||||
context: ..
|
context: ..
|
||||||
dockerfile: docker/Dockerfile.standalone
|
dockerfile: docker/Dockerfile.standalone
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue