Skip to content

🎉 Initial import: new project files #1

🎉 Initial import: new project files

🎉 Initial import: new project files #1

Workflow file for this run

name: CI Pipeline
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
env:
NODE_VERSION: '20'
jobs:
test:
name: Test Eligibility Engine MCP Server
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run unit tests
run: |
echo "🔌 Testing unit tests..."
make test
echo "✅ Unit tests successful"
- name: Run build all servers
run: |
echo "🔌 Building all servers..."
make build-all
echo "✅ All servers built successfully"
- name: Test make pack and verify contents
run: |
echo "📦 Testing make pack..."
make pack
# Check that a DXT file was created (find any .dxt file)
DXT_FILE=$(ls *.dxt 2>/dev/null | head -1)
if [ -z "$DXT_FILE" ]; then
echo "❌ No .dxt file found"
echo "Files in directory:"
ls -la
exit 1
fi
echo "✅ Found DXT file: $DXT_FILE"
# Install unzip if not available (should be available in ubuntu-latest)
if ! command -v unzip &> /dev/null; then
echo "Installing unzip..."
sudo apt-get update && sudo apt-get install -y unzip
fi
# Extract the package using unzip
echo "📂 Extracting package with unzip..."
mkdir -p test-extract
unzip -q "$DXT_FILE" -d test-extract
# Show extracted contents for debugging
echo "📁 Extracted contents:"
find test-extract -type f | head -20
# Verify required files exist
echo "🔍 Verifying package contents..."
if [ ! -f test-extract/stdio_server ]; then
echo "❌ stdio_server missing"
ls -la test-extract/
exit 1
fi
echo "✅ stdio_server found"
if [ ! -f test-extract/manifest.json ]; then
echo "❌ manifest.json missing"
ls -la test-extract/
exit 1
fi
echo "✅ manifest.json found"
echo "✅ make pack successful - all required files present"
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Test image.sh build
run: |
echo "🐳 Testing image.sh build..."
# Make script executable
chmod +x image.sh
echo "🐳 Using .env for build test"
# Check what container runtime is available (podman takes precedence)
echo "🔍 Checking available container runtimes..."
CONTAINER_RUNTIME=""
if command -v podman &> /dev/null; then
echo "✅ Podman available: $(podman --version)"
CONTAINER_RUNTIME="podman"
elif command -v docker &> /dev/null; then
echo "✅ Docker available: $(docker --version)"
CONTAINER_RUNTIME="docker"
else
echo "❌ Neither Podman nor Docker found"
exit 1
fi
echo "🎯 Will use: $CONTAINER_RUNTIME"
# Run the build
./image.sh build
# Check images with the detected runtime first, then fallback to the other
echo "🔍 Checking for created images..."
FOUND=false
# Check with primary runtime
echo "Checking with $CONTAINER_RUNTIME:"
$CONTAINER_RUNTIME images || echo "$CONTAINER_RUNTIME images command failed"
if $CONTAINER_RUNTIME images --format "table {{.Repository}}:{{.Tag}}" 2>/dev/null | grep -q "eligibility-engine-mcp"; then
echo "✅ Found image with $CONTAINER_RUNTIME"
FOUND=true
fi
# If not found and using podman, also check docker
if [ "$FOUND" = false ] && [ "$CONTAINER_RUNTIME" = "podman" ] && command -v docker &> /dev/null; then
echo "Checking with Docker as fallback:"
docker images || echo "Docker images command failed"
if docker images --format "table {{.Repository}}:{{.Tag}}" 2>/dev/null | grep -q "eligibility-engine-mcp"; then
echo "✅ Found image with Docker"
FOUND=true
fi
fi
# If not found and using docker, also check podman
if [ "$FOUND" = false ] && [ "$CONTAINER_RUNTIME" = "docker" ] && command -v podman &> /dev/null; then
echo "Checking with Podman as fallback:"
podman images || echo "Podman images command failed"
if podman images --format "table {{.Repository}}:{{.Tag}}" 2>/dev/null | grep -q "eligibility-engine-mcp"; then
echo "✅ Found image with Podman"
FOUND=true
fi
fi
if [ "$FOUND" = false ]; then
echo "❌ Container image not found with any runtime"
echo "Podman images:"
podman images --format "table {{.Repository}}:{{.Tag}}\t{{.ID}}\t{{.CreatedAt}}" 2>/dev/null || echo "Podman not available"
echo "Docker images:"
docker images --format "table {{.Repository}}:{{.Tag}}\t{{.ID}}\t{{.CreatedAt}}" 2>/dev/null || echo "Docker not available"
exit 1
fi
echo "✅ image.sh build successful"
- name: Upload artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: build-artifacts
path: |
*.dxt
target/release/stdio_server
target/release/sse_server
target/release/mcp_server
retention-days: 7