Add ADK #3
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Test MCP Docker Builds | |
| on: | |
| push: | |
| branches: [ main, feature/* ] | |
| paths: | |
| - 'obol-adk/dockerfiles/**' | |
| - 'obol-adk/obol-agent-docker/**' | |
| - 'obol-adk/Dockerfile' | |
| - 'obol-adk/requirements.txt' | |
| - 'obol-adk/main.py' | |
| - '.github/workflows/test-mcp-builds.yml' | |
| pull_request: | |
| branches: [ main ] | |
| paths: | |
| - 'obol-adk/dockerfiles/**' | |
| - 'obol-adk/obol-agent-docker/**' | |
| - 'obol-adk/Dockerfile' | |
| - 'obol-adk/requirements.txt' | |
| - 'obol-adk/main.py' | |
| - '.github/workflows/test-mcp-builds.yml' | |
| jobs: | |
| test-mcp-filesystem-pull: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Pull official MCP filesystem image | |
| run: | | |
| docker pull mcp/filesystem | |
| - name: Test official filesystem MCP image | |
| run: | | |
| # Test that the image was pulled successfully | |
| docker images | grep mcp/filesystem | |
| # Test basic functionality | |
| echo "Testing official MCP filesystem server" | |
| test-kubernetes-mcp: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Build kubernetes MCP image | |
| run: | | |
| docker build -f obol-adk/dockerfiles/Dockerfile.kubernetes \ | |
| -t kubernetes-mcp:test \ | |
| obol-adk/dockerfiles | |
| - name: Test kubernetes MCP image | |
| run: | | |
| # Test that the image was built successfully | |
| docker images | grep kubernetes-mcp | |
| # Test that the required package is installed | |
| docker run --rm kubernetes-mcp:test npm list -g mcp-server-kubernetes | |
| test-foundry-mcp: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Build foundry MCP image | |
| run: | | |
| docker build -f obol-adk/dockerfiles/Dockerfile.foundry \ | |
| -t foundry-mcp:test \ | |
| obol-adk/dockerfiles | |
| - name: Test foundry MCP image | |
| run: | | |
| # Test that the image was built successfully | |
| docker images | grep foundry-mcp | |
| # Test that foundry tools are available | |
| docker run --rm foundry-mcp:test forge --version | |
| # Test that the MCP server was built | |
| docker run --rm foundry-mcp:test ls -la /app/dist/ | |
| test-obol-mcp: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Build obol MCP image | |
| run: | | |
| docker build -f obol-adk/obol-agent-docker/Dockerfile \ | |
| -t obol-mcp:test \ | |
| obol-adk/obol-agent-docker | |
| - name: Test obol MCP image | |
| run: | | |
| # Test that the image was built successfully | |
| docker images | grep obol-mcp | |
| # Test that required Python packages are installed | |
| docker run --rm obol-mcp:test python -c "import fastmcp, httpx, uvicorn; print('All packages imported successfully')" | |
| # Test that server file exists | |
| docker run --rm obol-mcp:test ls -la /server/server.py | |
| test-obol-adk: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Build obol-adk image | |
| run: | | |
| docker build -f obol-adk/Dockerfile \ | |
| -t obol-adk:test \ | |
| obol-adk | |
| - name: Test obol-adk image | |
| run: | | |
| # Test that the image was built successfully | |
| docker images | grep obol-adk | |
| # Test that Google ADK is installed | |
| docker run --rm obol-adk:test python -c "import google.adk; print('Google ADK imported successfully')" | |
| # Test that main.py exists | |
| docker run --rm obol-adk:test ls -la /app/main.py | |
| integration-test: | |
| runs-on: ubuntu-latest | |
| needs: [test-mcp-filesystem-pull, test-kubernetes-mcp, test-foundry-mcp, test-obol-mcp, test-obol-adk] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Pull official MCP and build custom images | |
| run: | | |
| # Pull official MCP filesystem | |
| docker pull mcp/filesystem & | |
| # Build custom images in parallel | |
| docker build -f obol-adk/dockerfiles/Dockerfile.kubernetes -t kubernetes-mcp:test obol-adk/dockerfiles & | |
| docker build -f obol-adk/dockerfiles/Dockerfile.foundry -t foundry-mcp:test obol-adk/dockerfiles & | |
| docker build -f obol-adk/obol-agent-docker/Dockerfile -t obol-mcp:test obol-adk/obol-agent-docker & | |
| docker build -f obol-adk/Dockerfile -t obol-adk:test obol-adk & | |
| wait | |
| - name: Verify all images | |
| run: | | |
| echo "=== Available Docker Images ===" | |
| docker images | grep -E "(mcp/filesystem|kubernetes-mcp|foundry-mcp|obol-mcp|obol-adk)" | grep -E "(latest|test)" | |
| echo "=== Image Sizes ===" | |
| docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}" | grep -E "(mcp/filesystem|test)" | |
| - name: Test official MCP filesystem connection | |
| run: | | |
| # Test that official MCP filesystem can be run | |
| echo "Testing official MCP filesystem server" | |
| docker run --rm mcp/filesystem --help || echo "Filesystem MCP server available" | |
| - name: Clean up test images | |
| if: always() | |
| run: | | |
| docker image rm -f kubernetes-mcp:test foundry-mcp:test obol-mcp:test obol-adk:test || true |